A Python wrapper for the WooCommerce API.

Overview

WooCommerce API - Python Client

A Python wrapper for the WooCommerce REST API. Easily interact with the WooCommerce REST API using this library.

Installation

pip install woocommerce

Getting started

Generate API credentials (Consumer Key & Consumer Secret) following this instructions http://woocommerce.github.io/woocommerce-rest-api-docs/#rest-api-keys.

Check out the WooCommerce API endpoints and data that can be manipulated in http://woocommerce.github.io/woocommerce-rest-api-docs/.

Setup

from woocommerce import API

wcapi = API(
    url="http://example.com",
    consumer_key="ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    consumer_secret="cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    version="wc/v3"
)

Options

Option Type Required Description
url string yes Your Store URL, example: http://woo.dev/
consumer_key string yes Your API consumer key
consumer_secret string yes Your API consumer secret
version string no API version, default is wc/v3
timeout integer no Connection timeout, default is 5
verify_ssl bool no Verify SSL when connect, use this option as False when need to test with self-signed certificates
query_string_auth bool no Force Basic Authentication as query string when True and using under HTTPS, default is False
oauth_timestamp integer no Custom timestamp for requests made with oAuth1.0a
wp_api bool no Set to False in order to use the legacy WooCommerce API (deprecated)

Methods

Params Type Description
endpoint string WooCommerce API endpoint, example: customers or order/12
data dictionary Data that will be converted to JSON
**kwargs dictionary Accepts params, also other Requests arguments

GET

  • .get(endpoint, **kwargs)

POST

  • .post(endpoint, data, **kwargs)

PUT

  • .put(endpoint, data), **kwargs

DELETE

  • .delete(endpoint, **kwargs)

OPTIONS

  • .options(endpoint, **kwargs)

Response

All methods will return Response object.

Example of returned data:

>>> r = wcapi.get("products")
>>> r.status_code
200
>>> r.headers['content-type']
'application/json; charset=UTF-8'
>>> r.encoding
'UTF-8'
>>> r.text
u'{"products":[{"title":"Flying Ninja","id":70,...' // Json text
>>> r.json()
{u'products': [{u'sold_individually': False,... // Dictionary data

Request with params example

from woocommerce import API

wcapi = API(
    url="http://example.com",
    consumer_key="ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    consumer_secret="cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    version="wc/v3"
)

# Force delete example.
print(wcapi.delete("products/100", params={"force": True}).json())

# Query example.
print(wcapi.get("products", params={"per_page": 20}).json())

Changelog

2.1.1 - 2019/07/22

  • Updated Request library to 2.22.0.
  • Updated examples.

2.1.0 - 2019/01/15

  • Uses WP REST API by default, need to force wp_api as False in order to use the legacy WooCommerce API.
  • Updated default REST API version to wc/v3.

2.0.0 - 2019/01/15

  • Updated "Requests" library to version 2.20.0.
  • Added support for custom timestamps in oAuth1.0a requests with oauth_timestamp.
  • Allow pass custom arguments to "Requests" library.

1.2.1 - 2016/12/14

  • Fixed WordPress 4.7 compatibility.

1.2.0 - 2016/06/22

  • Added option query_string_auth to allow Basic Auth as query strings.

1.1.1 - 2016/06/03

  • Fixed oAuth signature for WP REST API.

1.1.0 - 2016/05/09

  • Added support for WP REST API.
  • Added method to do HTTP OPTIONS requests.

1.0.5 - 2015/12/07

  • Fixed oAuth filters sorting.

1.0.4 - 2015/09/25

  • Implemented timeout argument for API class.

1.0.3 - 2015/08/07

  • Forced utf-8 encoding on API.__request() to avoid UnicodeDecodeError

1.0.2 - 2015/08/05

  • Fixed handler for query strings

1.0.1 - 2015/07/13

  • Fixed support for Python 2.6

1.0.1 - 2015/07/12

  • Initial version
Comments
  • wcapi.get('orders') returns 403

    wcapi.get('orders') returns 403

    I connect to my WooCommerce webshop through the WooCommerce REST API Python wrapper,

    I.e,

    from woocommerce import API
    
    wcapi = API(
        url="https://mywebshop.whatever",
        consumer_key="ck_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        consumer_secret="cs_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        wp_api=True,
        version="wc/v1"
    )
    

    API has read/write access.

    All worked fine for months up to yesterday.


    Problem

    Since yesterday latest_order = wcapi.get('orders').json() returns a JSONDecodeError: Expecting value. Also, wcapi.get('orders') returns a <Response [403]>.

    I don't know what's causing this all of a sudden and I'm not sure how to solve it either.

    opened by LucSpan 20
  • getting an import error.

    getting an import error.

    after doing the pip install WooCommerce and placing the

    from woocommerce import API

    test = API(values here)

    running this shows this below.

    from woocommerce import API ImportError: cannot import name 'API'

    opened by ecampii 11
  • Issue with authentication consumer key or consumer secret invalid

    Issue with authentication consumer key or consumer secret invalid

    I'm creating credentials using the endpoint /wc-auth/v1/authorize with scope=read_write most times the consumer key and secret that I get are valid, but a couple of times I get consumer key or consumer secrets that are invalid when I try to use them later in code like this:

    wcapi = API(
        url=  shop_url,
        consumer_key= key,
        consumer_secret= secret
    )
    response = wcapi.get("orders?page=1")
    # Then response.text is {"errors":[{"code":"woocommerce_api_authentication_error","message":"Consumer Secret is invalid"}]}
    #  or {"errors":[{"code":"woocommerce_api_authentication_error","message":"Consumer Key is invalid"}]}
    

    Has this issue been detected yet? Is it related to the python wrapper or woocommerce plugin?

    opened by assislucas 10
  • Timeout exception yet uploaded the data

    Timeout exception yet uploaded the data

    I am having a weird issue. I am using API for a Woocommerce setup on my local machine. Onr running I am getting the exceptions:

    Traceback (most recent call last):
      File "/Users/Me/Data/anaconda3/lib/python3.7/site-packages/urllib3/connectionpool.py", line 384, in _make_request
        six.raise_from(e, None)
      File "<string>", line 2, in raise_from
      File "/Users/Me/Data/anaconda3/lib/python3.7/site-packages/urllib3/connectionpool.py", line 380, in _make_request
        httplib_response = conn.getresponse()
      File "/Users/Me/Data/anaconda3/lib/python3.7/http/client.py", line 1321, in getresponse
        response.begin()
      File "/Users/Me/Data/anaconda3/lib/python3.7/http/client.py", line 296, in begin
        version, status, reason = self._read_status()
      File "/Users/Me/Data/anaconda3/lib/python3.7/http/client.py", line 257, in _read_status
        line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
      File "/Users/Me/Data/anaconda3/lib/python3.7/socket.py", line 589, in readinto
        return self._sock.recv_into(b)
    socket.timeout: timed out
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/Users/Me/Data/anaconda3/lib/python3.7/site-packages/requests/adapters.py", line 449, in send
        timeout=timeout
      File "/Users/Me/Data/anaconda3/lib/python3.7/site-packages/urllib3/connectionpool.py", line 638, in urlopen
        _stacktrace=sys.exc_info()[2])
      File "/Users/Me/Data/anaconda3/lib/python3.7/site-packages/urllib3/util/retry.py", line 368, in increment
        raise six.reraise(type(error), error, _stacktrace)
      File "/Users/Me/Data/anaconda3/lib/python3.7/site-packages/urllib3/packages/six.py", line 686, in reraise
        raise value
      File "/Users/Me/Data/anaconda3/lib/python3.7/site-packages/urllib3/connectionpool.py", line 600, in urlopen
        chunked=chunked)
      File "/Users/Me/Data/anaconda3/lib/python3.7/site-packages/urllib3/connectionpool.py", line 386, in _make_request
        self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
      File "/Users/Me/Data/anaconda3/lib/python3.7/site-packages/urllib3/connectionpool.py", line 306, in _raise_timeout
        raise ReadTimeoutError(self, url, "Read timed out. (read timeout=%s)" % timeout_value)
    urllib3.exceptions.ReadTimeoutError: HTTPConnectionPool(host='localhost', port=80): Read timed out. (read timeout=5)
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/Users/Me/Data/Business/NisaaPK/data_uploader_api/uploader.py", line 48, in <module>
        add_product(wcapi)
      File "/Users/Me/Data/Business/NisaaPK/data_uploader_api/uploader.py", line 31, in add_product
        print(wc.post("products", data))
      File "/Users/Me/Data/anaconda3/lib/python3.7/site-packages/woocommerce/api.py", line 112, in post
        return self.__request("POST", endpoint, data, **kwargs)
      File "/Users/Me/Data/anaconda3/lib/python3.7/site-packages/woocommerce/api.py", line 103, in __request
        **kwargs
      File "/Users/Me/Data/anaconda3/lib/python3.7/site-packages/requests/api.py", line 60, in request
        return session.request(method=method, url=url, **kwargs)
      File "/Users/Me/Data/anaconda3/lib/python3.7/site-packages/requests/sessions.py", line 533, in request
        resp = self.send(prep, **send_kwargs)
      File "/Users/Me/Data/anaconda3/lib/python3.7/site-packages/requests/sessions.py", line 646, in send
        r = adapter.send(request, **kwargs)
      File "/Users/Me/Data/anaconda3/lib/python3.7/site-packages/requests/adapters.py", line 529, in send
        raise ReadTimeout(e, request=request)
    requests.exceptions.ReadTimeout: HTTPConnectionPool(host='localhost', port=80): Read timed out. (read timeout=5)
    

    When I checked on the site the product was there! This is the code I am using:

    from woocommerce import API
    
    
    def add_product(wc):
        data = {
            "name": "Sample Product",
            "type": "simple",
            "regular_price": "1221.99",
            "sale_price": "921.99",
            "description": "Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.",
            "short_description": "Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.",
            "categories": [
                {
                    "id": 135
                },
            ],
            "tags": [
    
            ],
            "button_text": "Visit here to buy",
            "images": [
                {
                    "src": "http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_2_front.jpg"
                },
                {
                    "src": "http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_2_back.jpg"
                }
            ],
            "external_url": 'http://adnansiddiqi.me'
        }
        print(wc.post("products", data))
    
    
    if __name__ == '__main__':
        KEY = 'XXX'
        SECRET = 'XXX'
    
        wcapi = API(
            url="http://localhost/shop.ab/",
            consumer_key=KEY,
            consumer_secret=SECRET,
            version="wc/v3"
        )
    
        # r = wcapi.get("products")
        # products = r.json()
        # print(len(products))
        add_product(wcapi)
    
    opened by kadnan 6
  • per_page and all integer parameters does't works

    per_page and all integer parameters does't works

    While trying to get product/categories from Woocommerce I got this error: "per_page is not of type integer"

    my code:

    wcapi = API( url="http://my_web.site", consumer_key="ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXX", consumer_secret="cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXX", version="wc/v3" )

    categories = wcapi.get("products/categories/?per_page=1").json()

    get the same error for all integer parameters

    opened by Damiano-Franco 6
  • woocommerce_api_authentication_error

    woocommerce_api_authentication_error","message":"Consumer Secret is invalid

    When using HTTPS in the API URL parameter below the authentication fails with the error"

    "woocommerce_api_authentication_error","message":"Consumer Secret is invalid".

    HTTP works fine.

    Questions:

    • Any suggestions on how to troubleshoot this?
    • If this is a potential server side configuration issues, do you have any pointers on how to configure it correctly?
    • Could you give me an example of how to use query parameters instead? The WooCommerce REST API documentation hints at an example for servers that not properly parse the Authorization header, but it is actually missing.
    API(
                url="https://kashalife.net/",
                consumer_key   ="ck_16c59a1a0693c2723928830da52a30640c2311fd",
                consumer_secret="cs_0b4e0f17741e024b31d0ef799257b972db473305",
                wp_api=False,
                verify_ssl=False,
                version="v3",
            )
    

    Thanks - Christoph

    opened by chbichsel 6
  • Not working anymore

    Not working anymore

    Hello,

    As of a few months this module does not seem to work anymore, I found the culprit, as it seems to work when I include this header: 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:80.0) Gecko/20100101 Firefox/80.0'. This explains why CURL works, but python requests not anymore.

    Best regards,

    Evert

    opened by Evert-Arends 5
  • Download all Products

    Download all Products

    First thank you very much for this amazing work!!

    I am trying to get all the products and I don' really know how to do it.

    I have tried to do

    wcapi.get('products?per_page=100') But I have more than 100 products

    Furthermore, I have tried to introduce the pagination as it is recommended in the manual, but it does not say how to introduce it in the code...

    I would love if someone could help me out with this.

    Yours sincerely,

    opened by eduaero 5
  • REST authentication error

    REST authentication error

    Hello,

    Having truble authenticating with rest api, all the time I get the same error.

    Wordpress 4.7.4 Woocommerce 3.0.5 Python 2.7.13

    from woocommerce import API
    
    wcapi = API(
        url="http://XYZ/~aclassi2/note/",
        consumer_key="ck_YYY",
        consumer_secret="cs_XXX",
        wp_api=True,
        version="wc/v2",
        verify_ssl=False,
        query_string_auth=True
    )
    
    {"code":"woocommerce_rest_authentication_error","message":"Invalid signature - provided signature does not match.","data":{"status":401}}
    
    

    When I use Postman, it works fine. I also tested with nodeJS, is maybe python lib broken?

    opened by hrvatskibogmars 5
  • Can't use OAuth (API calls over HTTP)

    Can't use OAuth (API calls over HTTP)

    Hi,

    Tested with versions 1.0.1 and 1.0.2, I can't use this library over HTTP. It seems to be related to the OAuth signature generated by the OAuth class.

    Here is my code (adapted from the README example) :

    wcapi = API(
        url="http://0.0.0.0:8080",
        consumer_key=WC_API_KEY,
        consumer_secret=WC_API_SECRET,
        version="v2",
        verify_ssl=False
    )
    
    r = wcapi.get("products")
    
    print(r.status_code)
    print(r.text)
    

    Here is the return :

    401
    {'errors': [{'code': 'woocommerce_api_authentication_error', 'message': 'Signature invalide - la signature fournie ne correspond pas'}]}
    

    (I'm using a French translation of WooCommerce)

    Do I need to force the use of OAuth1 somewhere ?

    Thanks for your help

    opened by Djiit 5
  • api accepts url params and additional keyword args for requests module

    api accepts url params and additional keyword args for requests module

    Currently the url params that are sent to Woo-Commerce are a closed box. They should be exposed outside of the function. Additionally, there are cases where a developer needs to pass additional parameters to the requests library. These should also be exposed outside of the function.

    I've been meaning to make a pull request for this. I have previously sub-classed the woocommerce.api.API object in order to do this and think it would be helpful to others who like me need to do more complicated requests.

    opened by timjen3 4
  • unable to update a product

    unable to update a product

    I am trying to update products in my store. But, the put/post methods do not work at all. The requests are executed but there are no changes in the product's properties. I gave my homepage URL as the url param, and the permalink in the wordpress is set to something like https://my-website.co.il/year/month/day/sample-post/. below is the constructor defined wcapi = API( url=STORE, consumer_key=DEV, consumer_secret=SECRET, wp_api=True, version="wc/v2", query_string_auth=True ) and here is how I update a product wcapi.put("products/4713", data={'price':'0.15'}).json()

    and then it returns the product with old price.

    Actually, the product is not updated and still it does not give an error.

    opened by Irfan-Ahmad-byte 0
  • Add request session

    Add request session

    Issue https://github.com/woocommerce/wc-api-python/issues/76 discusses the performance issue inherent in recreating a full HTTPS connection for every request.

    This PR enables request Session.

    opened by rooprob 0
  • Fetching 'products' fails with a 403 error despite other successful API calls

    Fetching 'products' fails with a 403 error despite other successful API calls

    Hello! Thanks for this library, though I'm having a little trouble retrieving products specifically. I have no trouble retrieving e.g. orders and customers.

    This works:

    import os
    from woocommerce import API
    
    WOOCOMMERCE_API_CONSUMER_KEY = os.environ.get('WOOCOMMERCE_API_CONSUMER_KEY')
    WOOCOMMERCE_API_CONSUMER_SECRET = os.environ.get('WOOCOMMERCE_API_CONSUMER_SECRET')  # noqa
    
    wcapi = API(
        url='https://xxxxxxxx.org',
        consumer_key=WOOCOMMERCE_API_CONSUMER_KEY,
        consumer_secret=WOOCOMMERCE_API_CONSUMER_SECRET,
        version='wc/v3',
        user_agent='PostmanRuntime/7.26.5'
    )
    
    data = wcapi.get('orders')
    # data = wcapi.get('customers')
    
    print(data.status_code)
    

    Trying wcapi.get('products'), however, throws a 403 status code:

    import os
    from woocommerce import API
    
    WOOCOMMERCE_API_CONSUMER_KEY = os.environ.get('WOOCOMMERCE_API_CONSUMER_KEY')
    WOOCOMMERCE_API_CONSUMER_SECRET = os.environ.get('WOOCOMMERCE_API_CONSUMER_SECRET')  # noqa
    
    wcapi = API(
        url='https://xxxxxxxx.org',
        consumer_key=WOOCOMMERCE_API_CONSUMER_KEY,
        consumer_secret=WOOCOMMERCE_API_CONSUMER_SECRET,
        version='wc/v3',
        user_agent='PostmanRuntime/7.26.5'
    )
    
    data = wcapi.get('products')
    
    print(data.status_code)
    

    Any help is much appreciated, thanks!

    opened by cjwinchester 2
  • timeout increased to 10sec

    timeout increased to 10sec

    before timeout set to 5sec its very low some times if network is not good getting this error :

    raise ReadTimeout(e, request=request)
    requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='......', port=....): Read timed out. (read timeout=5)
    

    for every two request i am getting this problem so i increased the timeout to 10 sec...

    Thank you.

    opened by Balaji-Kotni 2
  • low_stock_amount is string

    low_stock_amount is string

    Issue summary

    When I fetch a WooCommerce product using this API, the variable low_stock_amount is an empty string, I believe should be an integer '0'.

    Expected behavior

    Always return an integer. or a 0

    Actual behavior

    It returns an empty string.

    Steps to reproduce the problem

    1. response = wcapi.get('products', params={'sku':sku}).json()
    2. print(response)

    ##Related bug I believe this is a related bug


    opened by jmatah 0
Releases(3.0.0)
  • 3.0.0(Mar 13, 2021)

    2021-03-13

    Removed

    • Removed support to legacy Python versions, now supports Python 3.6+.
    • Removed ordereddict package dependency.

    Added

    • Added support for Python 3.8 and Python 3.9.
    • Added option to set custom user_agent.

    Changed

    • Updated default "User-Agent" to WooCommerce-Python-REST-API/3.0.0.
    • Updated Request library to 2.25.1.

    Fixed

    • Fixed Basic Auth in Python 3.8.
    Source code(tar.gz)
    Source code(zip)
A simple tool that lets you know when you are out of Lost Ark's queues

Overview A simple tool that lets you know when you are out of Lost Ark's queues. You can be notified via: Sound: the app will play a sound Discord web

Nelson 3 Feb 15, 2022
a harbinger of events or things.

Herald: Intrusion Detection System using IR and ML Herald - noun; a harbinger of events or things. Overview Herald is an intrusion detection system us

Muhammad Muzzammil 4 Jun 07, 2021
Discord Remote Administration Tool fully written in Python3.

DiscordRAT Discord Remote Administration Tool fully written in Python3. This is a RAT controlled over Discord with over 50 post exploitation modules.

hozzywozzy 2 Feb 06, 2022
PokemonGo-Bot - The Pokemon Go Bot, baking with community.

PokemonGo-Bot PokemonGo-Bot is a project created by the PokemonGoF team. Since no public API available for now, a patch to use HASH-Server was applied

3.8k Jan 08, 2023
EthSema - Binary translator for Ethereum 2.0

EthSema is a novel EVM-to-eWASM bytecode translator that can not only ensure the fidelity of translation but also fix commonly-seen vulnerabilities in smart contracts.

weimin 8 Mar 01, 2022
The most fresh and updateable Telegram userbot. By one of the most active contibutors to GeekTG

Installation Script installation: Simply run this command out of root: . (wget -qO- http://gg.gg/get_hikka) Manual installation: apt update && apt in

Dan Gazizullin 150 Jan 04, 2023
Typed interactions with the GitHub API v3

PyGitHub PyGitHub is a Python library to access the GitHub API v3 and Github Enterprise API v3. This library enables you to manage GitHub resources su

5.7k Jan 06, 2023
Tools to download and aggregate feeds of vaccination clinic location information in the United States.

vaccine-feed-ingest Pipeline for ingesting nationwide feeds of vaccine facilities. Contributing How to Configure your environment (instructions on the

Call the Shots 26 Aug 05, 2022
News API consisting various sources from Tanzania

Tanzania News API News API consisting various sources from Tanzania. Fork the project Clone the project git clone https://github.com/username/news-a

Innocent Zenda 6 Oct 06, 2022
Follow pixiv account from twitter profile

Follow pixiv account from twitter profile

Genshi 7 Apr 11, 2022
High-Resolution Differential Z-Belt Mod for V0 (with optional Kirigami support)

V0-DBM This is a high-resolution differential pulley system belt mod for the Z-axis on Voron 0 with optional Kirigami Bed support. NOTE: Alpha version

Simon Küppers 11 Jan 07, 2023
Discord bot for Ukrfans Discord server

Ukrfans Discord Bot Discord bot for Ukrfans Discord server. 💡 Prerequisites Python ⚙️ Build & Run Create an .env file in the root directory and add t

3 Jun 24, 2022
⚡ Simple mass dm selfbot for Discord written in python3.

Zapp Simple mass dm selfbot for Discord written in python3. Warning. This project was made for educational purposes only! I take no responsibility for

Ѵιcнч 34 Nov 01, 2022
Shiny Wechat Pay SDK for Python

WeChat third-party Python SDK master: Read the Documentation Features Common public platforms passively respond and actively call APIs WeChat Pay API

Obrisk 18 Sep 05, 2022
Cogs for RedDiscord-Bot V3

Cogs v3 Disclaimer: This is an unapproved repo, meaning no one has formally reviewed this repo yet and any loss of data in your bot isn't my fault (An

Honkertonken 5 Nov 17, 2022
Create a roles overview page for all Ansible roles/playbooks in Gitlab

ansible-create-roles-overview Overview The script ./create_roles_overview.py queries a Gitlab API for Ansible roles and playbooks. It will iterate ove

2 Oct 11, 2021
A Discord bot for viewing any currency you want comfortably.

Dost Dost is a Discord bot for viewing currencies. Getting Started These instructions will get you a copy of the project up and running on your local

Baran Gökalp 2 Jan 18, 2022
Reverse engineering multi-device WhatsApp Web.

whatsapp-web-multi-device-reveng In this repository, the research for reverse engineering multi-device WhatsApp Web takes place, see here for a descri

84 Jan 01, 2023
Tweet stream in OBS browser source

Tweetron TweetronはOBSブラウザーソースを使用してツイートを画面上に表示するツールソフトです Windowsのみ対応 (Windows10動作確認済) ダウンロード こちらから最新版をダウンロードしてください (現在ベータテスト版を配布しています) Download ver0.0.

Cube 0 Apr 05, 2022
Microsoft Azure Storage Library for Python

Microsoft Azure Storage Library for Python

Microsoft Azure 329 Dec 16, 2022