Skip to main content

Nifi-Python-Api: A convenient Python wrapper for the Apache NiFi Rest API

Project description

NiPyApi

Nifi-Python-Api: A convenient Python wrapper for the Apache NiFi Rest API

Release Status Build Status Documentation Status Python Updates test coverage License

Features

This package provides pythonic calls for common NiFi tasks and CICD/SDLC integrations
These are implemented by replicating the action of the same task in the GUI and surfacing the underlying NiFi Data structures and calls wherever possible, to retain UX parallelism for the user

Usage

The easiest way to install NiPyApi is with pip:

# in bash
pip install nipyapi

Then import and use the modules:

# in python
from nipyapi.canvas import *
from nipyapi.templates import *
from nipyapi.system import *
dir()
>['__builtins__', 'all_templates', 'create_pg_snippet', 'create_template', 'delete_process_group', 'delete_template', 'deploy_template', 'export_template', 'get_cluster', 'get_flow', 'get_nifi_version_info', 'get_node', 'get_process_group', 'get_process_group_status', 'get_root_pg_id', 'get_system_diagnostics', 'get_template_by_name', 'list_all_process_groups', 'recurse_flow', 'schedule_process_group', 'sys', 'upload_template']
get_root_pg_id()
>'4d5dcf9a-015e-1000-097e-e505ed0f7fd2'

Background

For more information on Apache NiFi, please visit https://nifi.apache.org
For Documentation on this package please visit https://nipyapi.readthedocs.io.

Version Support

This project leverages the nifi-python-swagger-client to maintain version compatibility with NiFi releases
Currently we are testing against NiFi version 1.2.x
If you require a different version please raise an issue

Requirements

Python 2.7 or 3.6 supported, though other versions may work

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template

Inspired by the equivalent Java client maintained over at hermannpencole/nifi-config

The swagger 2.0 compliant client auto-generated using the Swagger Codegen project, and then cleaned / bugfixed by the authors

History

0.6.1 (2018-01-04)

  • Added requested functions to find and list Processors on the canvas

  • Fixed list all process groups to include the root special case properly

0.6.0 (2017-12-31)

  • Refactored many functions to use native NiFi datatypes instead of generics

  • Standardised several call names for consistency

  • Updated examples

  • Created additional tests and enhanced existing to capture several exceptions

0.5.1 (2017-12-07)

  • Added template import/export with working xml parsing and tests

  • Added a ton of testing and validation steps

  • Cleared many todos out of code by either implementing or moving to todo doc

0.5.0 (2017-12-06)

  • migrated swagger_client to separate repo to allow independent versions

  • refactored wrapper Classes to simpler functions instead

  • cleaned up documentation and project administrivia to support the split

0.4.0 (2017-10-29)

  • Added wrapper functions for many common Template commands (templates.py)

  • Added new functions for common Process Groups commands (canvas.py)

  • Significant test framework enhancements for wrapper functions

  • Many coding style cleanups in preparation for filling out test suite

  • Added linting

  • Cleaned up docs layout and placement within project

  • Integrated with TravisCI

  • Dropped Python2.6 testing (wasn’t listed as supported anyway)

  • Updated examples and Readme to be more informative

0.3.2 (2017-09-04)

  • Fixed bug where tox failing locally due to coveralls expecting travis

  • Fixed bug where TravisCI failing due to incorrectly set install requirements

  • Fixed bug where swagger_client not importing as expected

0.3.1 (2017-09-04)

  • Fixed imports and requirements for wheel install from PyPi

0.3.0 (2017-09-04)

  • Created basic wrapper structure for future development

  • Added simple usage functions to complete todo task

  • Added devnotes, updated usage, and various sundry other documentation cleanups

  • Split tests into subfolders for better management and clarity

  • Added Coveralls and License Badge

  • Removed broken venv that ended up in project directory, added similar to ignore file

  • Changed default URL in the configuration to default docker url and port on localhost

0.2.1 (2017-08-26)

  • Fixed up removal of leftover swagger client dependencies

0.2.0 (2017-08-25)

  • Merge the nifi swagger client into this repo as a sub package
    • Restructured tests into package subfolders

    • Consolidate package configuration

    • Setup package import structure

    • Updated usage instructions

    • Integrate documentation

0.1.2 (2017-08-24)

  • Created basic integration with nifi-python-swagger-client

0.1.1 (2017-08-24)

  • Cleaned up base project and integrations ready for code migration

0.1.0 (2017-08-24)

  • First release on PyPI.

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

nipyapi-0.6.1.tar.gz (22.2 kB view details)

Uploaded Source

Built Distribution

nipyapi-0.6.1-py2.py3-none-any.whl (13.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file nipyapi-0.6.1.tar.gz.

File metadata

  • Download URL: nipyapi-0.6.1.tar.gz
  • Upload date:
  • Size: 22.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for nipyapi-0.6.1.tar.gz
Algorithm Hash digest
SHA256 81cea92ab34e3f7c2b1dc95578d2ca2d0e1c02728d905d2130cb25c843eed807
MD5 3beb8b7c11359cce0fa9393e09e75561
BLAKE2b-256 d63dae3bc5a3f2131ce39b85d98945b7771b1c97851e939176614803d232694d

See more details on using hashes here.

File details

Details for the file nipyapi-0.6.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for nipyapi-0.6.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 03083e862dffbd1003c1d0bebdf05b8446fd18e8dbd140ccb488ef1dece2a220
MD5 53c4e1874ae9a0d43001ba54c4e6ff97
BLAKE2b-256 e294b32e21ac0e8578f4f93f263c6b273aa880668c921202e95fdbea2010f789

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 Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page