braze-client
|pypi-badge| |ci-badge| |codecov-badge| |doc-badge| |pyversions-badge|
|license-badge|
Python client for interacting with Braze APIs.
Development Workflow
One Time Setup
.. code-block::
# Clone the repository
git clone git@github.com:edx/braze-client.git
cd braze-client
# Set up a virtualenv using virtualenvwrapper with the same name as the repo and activate it
mkvirtualenv -p python3.8 braze-client
or
virtualenv --python=python3 <venv>
Every time you develop something in this repo
.. code-block::
Activate the virtualenv
workon braze-client
or
source /bin/activate
Grab the latest code
git checkout main
git pull
Install/update the dev requirements
make requirements
Run the tests and quality checks (to verify the status before you make any changes)
make validate
Make a new branch for your changes
git checkout -b <your_github_username>/<short_description>
Using your favorite editor, edit the code to make your change.
vim …
Run your new tests
pytest ./path/to/new/tests
Run all the tests and quality checks
make validate
Commit all your changes
git commit …
git push
Open a PR and ask for review.
License
The code in this repository is licensed under the AGPL 3.0 unless
otherwise noted.
Please see LICENSE.txt <LICENSE.txt>
_ for details.
How To Contribute
Contributions are very welcome.
Please read How To Contribute <https://github.com/edx/edx-platform/blob/master/CONTRIBUTING.rst>
_ for details.
Even though they were written with edx-platform
in mind, the guidelines
should be followed for all Open edX projects.
The pull request description template should be automatically applied if you are creating a pull request from GitHub. Otherwise you
can find it at PULL_REQUEST_TEMPLATE.md <.github/PULL_REQUEST_TEMPLATE.md>
_.
The issue report template should be automatically applied if you are creating an issue on GitHub as well. Otherwise you
can find it at ISSUE_TEMPLATE.md <.github/ISSUE_TEMPLATE.md>
_.
Reporting Security Issues
Please do not report security issues in public. Please email security@edx.org.
Getting Help
If you're having trouble, we have discussion forums at https://discuss.openedx.org where you can connect with others in the community.
Our real-time conversations are on Slack. You can request a Slack invitation
, then join our community Slack workspace
.
For more information about these options, see the Getting Help
_ page.
.. _Slack invitation: https://openedx-slack-invite.herokuapp.com/
.. _community Slack workspace: https://openedx.slack.com/
.. _Getting Help: https://openedx.org/getting-help
.. |pypi-badge| image:: https://img.shields.io/pypi/v/braze-client.svg
:target: https://pypi.python.org/pypi/braze-client/
:alt: PyPI
.. |ci-badge| image:: https://github.com/edx/braze-client/workflows/Python%20CI/badge.svg?branch=main
:target: https://github.com/edx/braze-client/actions
:alt: CI
.. |codecov-badge| image:: https://codecov.io/github/edx/braze-client/coverage.svg?branch=main
:target: https://codecov.io/github/edx/braze-client?branch=main
:alt: Codecov
.. |doc-badge| image:: https://readthedocs.org/projects/braze-client/badge/?version=latest
:target: https://braze-client.readthedocs.io/en/latest/
:alt: Documentation
.. |pyversions-badge| image:: https://img.shields.io/pypi/pyversions/braze-client.svg
:target: https://pypi.python.org/pypi/braze-client/
:alt: Supported Python versions
.. |license-badge| image:: https://img.shields.io/github/license/edx/braze-client.svg
:target: https://github.com/edx/braze-client/blob/main/LICENSE.txt
:alt: License
Change Log
..
All enhancements and patches to braze-client will be documented
in this file. It adheres to the structure of https://keepachangelog.com/ ,
but in reStructuredText instead of Markdown (for ease of incorporation into
Sphinx documentation and the PyPI description).
This project adheres to Semantic Versioning (https://semver.org/).
.. There should always be an "Unreleased" section for changes pending release.
Unreleased
[0.2.5]
chore: Updates version
[0.2.4]
feat: adds 'create_recipients' function to the braze client
[0.2.3]
feat: pass error response content into raised exceptions
[0.2.2]
fix: be defensive about pulling both ``email`` and ``external_id`` from braze export.
[0.2.1]
fix: be defensive about pulling external_id from braze export.
[0.2.0]
feat: check for external ids in batchs when creating aliases.
[0.1.8]
fix: always create an alias for existing profiles
[0.1.7]
feat: add retrieve_unsubscribed_emails method
[0.1.6]
feat: add unsubscribe_user_email method
[0.1.5]
feat: add send_canvas_message method
[0.1.4]
feat: add identify_users method
[0.1.3]
fix: handle intermittent JSONDecodeError from from Braze
[0.1.2]
feat: add override_frequency_capping arg for send_email
[0.1.1]
feat: advertise constraints in setup.py
[0.1.0] - 2021-10-20
Added