Giter Site home page Giter Site logo

target-python-sdk's Introduction

Adobe Target Python SDK

Coverage Status

Requirements

All currently maintained versions of Python are supported, see Python Releases. Older Python releases may likely work too, but are not officially supported.

NPM 6+ (required by openapi-generator-cli)
Java 8+ (required by openapi-generator)
GNU Make

Set PYTHON_PATH

Various build commands are supported via Makefile, but first you must export environment variable PYTHON_PATH to specify which python install to use to set up your virtual env.

$ export PYTHON_PATH=python2.7  # Symlink to Mac OS built-in version of python
$ export PYTHON_PATH=/usr/local/bin/python3

Setup virtual env to make it easy to switch between python 2.7 and 3

$ make new_env          # Deletes existing virtual env and creates new one based on PYTHON_PATH
$ make install          # Install dependencies in virtual env

Code generation

The SDK depends on Target Open API. It uses Open API and the Open API generator to generate the low level HTTP client.

To be able to use Target Open API for code generation, we are leveraging Git subtree.

To import Target Open API as openapi folder please use commands:

$ git subtree add --prefix openapi [email protected]:adobe/target-openapi.git main --squash

To refresh the imported subtree use this command:

$ git subtree pull --prefix openapi [email protected]:adobe/target-openapi.git main --squash

Once all the tools are installed, there is no need to invoke them directly, everything is wrapped in a Makefile command, which can be invoked by running:

$ make codegen

However, there are some deviations from the other SDKs, in which a manual code change is needed:

Run tests and format code

$ make test
$ make format

Integration Test Generation

There is an integration test suite used by many of the Target SDKs. To get the latest version of these tests, follow the instructions defined here in the test repo. Note the following deviation from the other SDKs:

  • this SDK does not currently support the telemetry feature, so TEST_SUITE_TELEMETRY.json needs to be modified according to this commit

Release build package

Releases are triggered through Github publish workflow. Input version part to update before publishing to pypi - [patch, minor, major]

Running Github Workflows on forked repositories

Github Workflows don't run on forked repositories by default. You must enable GitHub Actions in the Actions tab of the forked repository.

See more details at https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows#pull-request-events-for-forked-repositories

Contributing

Contributions are welcomed! Read the Contributing Guide for more information.

Licensing

This project is licensed under the Apache V2 License. See LICENSE for more information.

target-python-sdk's People

Contributors

dcottingham avatar ericfichtel avatar jasonwaters avatar mptap avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.