diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 82f9239..f0e35cb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,7 +9,7 @@ on: jobs: build: name: Build - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 strategy: matrix: python-version: [3.6, 3.7, 3.8, 3.9] diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index d9562ac..479117d 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,28 +1,25 @@ -# This workflow will upload a Python Package using Twine when a release is created -# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries -name: Publish package to PyPI +name: Upload Python Package + on: release: - types: [created] + types: [published] + jobs: deploy: - name: Deploy runs-on: ubuntu-latest steps: - - name: Checkout code - uses: actions/checkout@v2 - - name: Set up Python - uses: actions/setup-python@v2 - with: - python-version: '3.9' - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install setuptools wheel twine - - name: Build and publish - env: - TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} - TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} - run: | - python setup.py sdist bdist_wheel - twine upload dist/* + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install build + - name: Build package + run: python -m build + - name: Publish package + uses: pypa/gh-action-pypi-publish@release/v1 + with: + password: ${{ secrets.PYPI_API_TOKEN }} \ No newline at end of file diff --git a/README.rst b/README.rst index 38d507b..1b5d51c 100644 --- a/README.rst +++ b/README.rst @@ -1,151 +1,2 @@ -WooCommerce API - Python Client -=============================== - -A Python wrapper for the WooCommerce REST API. Easily interact with the WooCommerce REST API using this library. - -.. image:: https://github.com/woocommerce/wc-api-python/actions/workflows/ci.yml/badge.svg?branch=trunk - :target: https://github.com/woocommerce/wc-api-python/actions/workflows/ci.yml - -.. image:: https://img.shields.io/pypi/v/woocommerce.svg - :target: https://pypi.python.org/pypi/WooCommerce - - -Installation ------------- - -.. code-block:: bash - - 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 ------ - -.. code-block:: python - - 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`` | -+-----------------------+-------------+----------+-------------------------------------------------------------------------------------------------------+ -| ``user_agent`` | ``string`` | no | Set a custom User-Agent, default is ``WooCommerce-Python-REST-API/3.0.0`` | -+-----------------------+-------------+----------+-------------------------------------------------------------------------------------------------------+ -| ``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: - -.. code-block:: bash - - >>> 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 ------------------------------ - -.. code-block:: python - - 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 ---------- - -See `CHANGELOG.md `_. +Modified WooCommerce API - Python Client +Python wrapper for the WooCommerce REST API. Easily interact with the WooCommerce REST API using this library. diff --git a/requirements-test.txt b/requirements-test.txt index 950b2c5..dfe6bd5 100644 --- a/requirements-test.txt +++ b/requirements-test.txt @@ -1,4 +1,4 @@ -r requirements.txt httmock==1.4.0 pytest==6.2.2 -flake8==3.8.4 +flake8==5.0.4 diff --git a/setup.py b/setup.py index 9dae917..e780961 100644 --- a/setup.py +++ b/setup.py @@ -22,13 +22,13 @@ os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir))) setup( - name="WooCommerce", + name="WooCommerceMetorik", version=VERSION, description="A Python wrapper for the WooCommerce REST API", long_description=README, author="Claudio Sanches @ Automattic", author_email="claudio+pypi@automattic.com", - url="https://github.com/woocommerce/wc-api-python", + url="https://github.com/jakubactive/wc-api-python", license="MIT License", packages=[ "woocommerce" diff --git a/woocommerce/api.py b/woocommerce/api.py index a97c901..466e8ac 100644 --- a/woocommerce/api.py +++ b/woocommerce/api.py @@ -89,6 +89,9 @@ def __request(self, method, endpoint, data, params=None, **kwargs): data = jsonencode(data, ensure_ascii=False).encode('utf-8') headers["content-type"] = "application/json;charset=utf-8" + if (kwargs.get("headers")): + headers.update(kwargs.get("headers")) + return request( method=method, url=url, @@ -97,13 +100,12 @@ def __request(self, method, endpoint, data, params=None, **kwargs): params=params, data=data, timeout=self.timeout, - headers=headers, - **kwargs + headers=headers ) - def get(self, endpoint, **kwargs): + def get(self, endpoint, data = None, **kwargs): """ Get requests """ - return self.__request("GET", endpoint, None, **kwargs) + return self.__request("GET", endpoint, data, **kwargs) def post(self, endpoint, data, **kwargs): """ POST requests """ pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy