Skip to main content

Nuxeo REST API Python client

Project description

Client Library for Nuxeo API

Build Status Coverage Lines of code

The Nuxeo Python Client is a Python client library for the Nuxeo Automation and REST API. It works with both Python 2 and 3.

This is an ongoing project, supported by Nuxeo.

Getting Started

The installation is as simple as:

python -m pip install --upgrade nuxeo

Then, use the following import statement to have access to the Nuxeo API:

from nuxeo.client import Nuxeo

Documentation

Check out the API documentation.

Requirements

The Nuxeo Python client works only with:

  • the Nuxeo Platform >= LTS 2015

  • requests >= 2.12.2 (for unicode authentication)

  • setuptools >= 30.3.0

Quick Start

This quick start guide will show how to do basics operations using the client.

Connect to the Nuxeo Platform

The easiest way to connect to the Nuxeo Platform with a basic authentication is passing a tuple containing the username and the password to the client, like so:

nuxeo = Nuxeo(auth=('Administrator', 'Administrator'))

You can then use the nuxeo object to interact with the Platform. If you want to use a specific instance, you can specify the base_url like so:

nuxeo = Nuxeo(
    host='http://demo.nuxeo.com/nuxeo/',
    auth=('Administrator', 'Administrator')
    )

Download/Upload Configuration

In the nuxeo/constants.py file, you have several constants that are used throughout the client that you can change to fit your needs. Some of them are:

  • CHECK_PARAMS (False by default), to check operation’s parameters for each and every HTTP calls.

  • CHUNK_LIMIT (10 Mio by default), the size above which the upload will automatically be chunked.

  • CHUNK_SIZE (8 Kio by default), the size of the chunks when downloading.

  • MAX_RETRY (3 by default), the number of retries for the upload of a given blob/chunk.

  • UPLOAD_CHUNK_SIZE (256 Kio by default), the size of the chunks when uploading.

Run NXQL Queries

You can run queries in NXQL (NXQL is a subset of SQL, you can check how to use it in the documentation). Here, we are first fetching a workspace, and then using its uid to build a query which will find all its children that have a File or Picture type, and are not deleted.

# Fetch a workspace
ws = nuxeo.documents.get(path='/default-domain/workspaces/ws')

# Build a query using its UID
nxql = ("SELECT * FROM Document WHERE ecm:ancestorId = '{uid}'"
        "   AND ecm:primaryType IN ('File', 'Picture')"
        "   AND ecm:currentLifeCycleState != 'deleted'")
query = nxql.format(uid=ws.uid)

# Make the request
search = nuxeo.client.query(query, params={'properties': '*'})

# Get results
entries = search['entries']

entries will be a list containing a dict for each element returned by the query.

Usage

Now that your client is set up, here are pages to help you with the main functions available:

You can also check the API documentation of this Python client for further options.

Contributing

See our contribution documentation.

Setup

git clone https://github.com/nuxeo/nuxeo-python-client
cd nuxeo-python-client
python setup.py develop

Test

A Nuxeo Platform instance needs to be running on http://localhost:8080/nuxeo for the tests to be run, and then:

python -m pip install --user tox
tox

Tests can be launched without a server with Maven and tox:

mvn -f ftest/pom.xml clean verify

Deploying

For the maintainer, the command to distribute the module is:

python3 -m pip install wheel
python3 setup.py sdist bdist_wheel upload

Reporting Issues

You can follow the developments in the Nuxeo Python Client project of our JIRA bug tracker: https://jira.nuxeo.com/browse/NXPY.

You can report issues on answers.nuxeo.com.

License

Apache License 2.0 Copyright (c) Nuxeo

About Nuxeo

Nuxeo dramatically improves how content-based applications are built, managed and deployed, making customers more agile, innovative and successful. Nuxeo provides a next generation, enterprise ready platform for building traditional and cutting-edge content oriented applications. Combining a powerful application development environment with SaaS-based tools and a modular architecture, the Nuxeo Platform and Products provide clear business value to some of the most recognizable brands including Verizon, Electronic Arts, Sharp, FICO, the U.S. Navy, and Boeing. Nuxeo is headquartered in New York and Paris. More information is available at www.nuxeo.com.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nuxeo-2.0.5.tar.gz (25.0 kB view details)

Uploaded Source

Built Distribution

nuxeo-2.0.5-py2.py3-none-any.whl (33.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file nuxeo-2.0.5.tar.gz.

File metadata

  • Download URL: nuxeo-2.0.5.tar.gz
  • Upload date:
  • Size: 25.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.6

File hashes

Hashes for nuxeo-2.0.5.tar.gz
Algorithm Hash digest
SHA256 78e2e3e0b46ca7d2f3362f2477c1fcb2e19bd31bae8da0030e3c14751294afa7
MD5 98da42c7bb549175bbc37689d9e3c396
BLAKE2b-256 fe9e4d044032c4ca85a3d6fa738ebd902dad483b3e97242d45f70f3469a2cab3

See more details on using hashes here.

File details

Details for the file nuxeo-2.0.5-py2.py3-none-any.whl.

File metadata

  • Download URL: nuxeo-2.0.5-py2.py3-none-any.whl
  • Upload date:
  • Size: 33.5 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.6

File hashes

Hashes for nuxeo-2.0.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 f36964325c5bf928f97a36cd66d0554fb98062bbbbe0e357d0dc1d8d8228eadb
MD5 3b2e95183d023bdd65f88d4763dad2b9
BLAKE2b-256 4933a2986f248a1a1c87897529b9b1d4aa14226ac0e31c6e8056671e520f2724

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page