Skip to content

Python Mail Helper Refactor #769

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 65 commits into from
Apr 3, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
e07db8d
Initial working version of Send a Single Email to a Single Recipient
thinkingserious Jun 26, 2018
6fb64da
Code cleanup for first use case
thinkingserious Jul 12, 2018
4ee2dd6
Integrate PR #486
thinkingserious Jul 12, 2018
3b705ed
Integrate PR #458
thinkingserious Jul 12, 2018
7ed4338
Integrate PR #493
thinkingserious Jul 12, 2018
6c23204
Add PR #496
thinkingserious Jul 25, 2018
2ee538f
Formatting
thinkingserious Jul 25, 2018
56a0ad0
Don't forget to thank previous PRs
thinkingserious Jul 25, 2018
ad6c4da
Merge branch 'master' of https://github.com/sendgrid/sendgrid-python …
thinkingserious Aug 8, 2018
ff555ca
WIP
thinkingserious Aug 16, 2018
79ec255
Drop support for EOL Python
hugovk Oct 1, 2018
7da6749
Upgrade Python syntax with pyupgrade
hugovk Oct 3, 2018
76df67e
Upgrade unit tests to use more useful asserts
hugovk Oct 3, 2018
3b01e12
Fix flake8 and code inspections
hugovk Oct 3, 2018
164c08a
Quote names containing comma or semicolon
cmccandless Sep 13, 2018
d53d193
add explanatory comment
cmccandless Oct 1, 2018
0042b7b
Add test for comma in name
cmccandless Oct 1, 2018
32183b7
Add quotes around expected value in new test
cmccandless Oct 1, 2018
e4f1097
Update requirements.txt
rahulkumaran Oct 4, 2018
ae378dc
Merge pull request #626 from hugovk/v4-rm-eol
thinkingserious Oct 4, 2018
6326325
Merge pull request #618 from cmccandless/issue-578
thinkingserious Oct 5, 2018
91a234c
Add support for Python 3.7
hugovk Oct 5, 2018
33a3576
Merge pull request #630 from rahulkumaran/update-requirements.txt
thinkingserious Oct 6, 2018
5fc2fa4
converted README and version as plain text
StrikerRUS Oct 9, 2018
6807e5c
updated Python versions in README from v4 branch
StrikerRUS Oct 9, 2018
3debda7
hotfix for excess import
StrikerRUS Oct 9, 2018
03564f7
Allow creation of Mail from EmailMessage
cmccandless Oct 4, 2018
8e4e721
Python2.7 import compatibility fix
cmccandless Oct 4, 2018
63b8134
Merge pull request #637 from hugovk/add-3.7-to-v4
thinkingserious Oct 11, 2018
0dd1c3a
Merge remote-tracking branch 'upstream/v4' into pypi_v4
StrikerRUS Oct 11, 2018
edd02e4
Merge pull request #663 from StrikerRUS/pypi_v4
thinkingserious Oct 23, 2018
1819e60
Add use case for generation of Plain Text Content from HTML
cmccandless Oct 9, 2018
b3feabe
Created First-timers.md File
jaykay12 Oct 9, 2018
a83c82a
Cleanup Env Documentation
Oct 25, 2018
ef0c8e0
Cleanup Dockerfile's
Oct 26, 2018
d1f3545
Use assertEqual instead of assertDictEqual
cmccandless Oct 27, 2018
2546fa3
Correct attribution links formating
Oct 28, 2018
5049c53
Update USAGE.md
chatpion Oct 30, 2018
bb16f15
Merge pull request #631 from cmccandless/support-email.message.EmailM…
thinkingserious Oct 30, 2018
f04267b
Merge pull request #715 from PyroclasticMayhem/patch-1
thinkingserious Oct 30, 2018
28b7402
Use raw-string notation for regex to avoid invalid escape sequence
hugovk Oct 30, 2018
33536e8
Merge pull request #727 from hugovk/patch-1
thinkingserious Oct 30, 2018
61814dc
Merge pull request #709 from rawkode/bugfix/clean-up-docker-env
thinkingserious Oct 31, 2018
d041c44
Merge pull request #711 from rawkode/bugfix/docker-ddev
thinkingserious Oct 31, 2018
c0c93a1
Fixing Merge Conflicts
thinkingserious Nov 27, 2018
aaf4678
Fixed local Docker testing
thinkingserious Nov 27, 2018
ee058df
Add properies to mail.py
thinkingserious Nov 27, 2018
9655794
Finished updating properties
thinkingserious Nov 29, 2018
0026089
Send a Single Email to a Single Recipient
thinkingserious Nov 29, 2018
284ebaa
Added Send a Single Email to Multiple Recipients Use Case
thinkingserious Dec 4, 2018
0282aab
Merge pull request #665 from cmccandless/issue-354
thinkingserious Dec 7, 2018
39acf5f
Send Multiple Emails to Multiple Recipients
thinkingserious Dec 10, 2018
c417c31
Merge branch 'v4' of https://github.com/sendgrid/sendgrid-python into v4
thinkingserious Dec 10, 2018
43fc638
WIP - final use case update, kitchen sink
thinkingserious Dec 15, 2018
f17f5d8
Merge pull request #655 from ChatPion/patch-1
thinkingserious Jan 24, 2019
19bb394
Merge pull request #666 from jaykay12/first-timer-documentation
thinkingserious Jan 24, 2019
72654f7
kitchen sink example
thinkingserious Mar 23, 2019
74ec42c
kitchen sink example
thinkingserious Mar 23, 2019
557378b
Testing everything but the kitchen sink
thinkingserious Mar 24, 2019
e6cf967
Add kitchen sink test
thinkingserious Mar 24, 2019
c97ec64
Prep for review
thinkingserious Mar 24, 2019
3877a8f
Rolling up diverging changes from master branch
thinkingserious Mar 26, 2019
a945dcf
Updated documentation
thinkingserious Apr 1, 2019
2fd6290
pep8
thinkingserious Apr 2, 2019
ae4b1fe
Cutoff before merge into master
thinkingserious Apr 2, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions .github/PULL_REQUEST_TEMPLATE
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
<!--
We appreciate the effort for this pull request but before that please make sure you read the contribution guidelines given above, then fill out the blanks below.
We appreciate the effort for this pull request, but before that, please make sure you read the [contribution guidelines](https://github.com/sendgrid/sendgrid-python/blob/v4/CONTRIBUTING.md), and then fill out the blanks below.


Please enter each Issue number you are resolving in your PR after one of the following words [Fixes, Closes, Resolves]. This will auto-link these issues and close them when this PR is merged!
e.g.
Fixes #1
Closes #2
-->
# Fixes #
# Fixes #X

### Checklist
- [ ] I have made a material change to the repo (functionality, testing, spelling, grammar)
Expand All @@ -19,6 +19,5 @@ Closes #2

### Short description of what this PR does:
-
-

If you have questions, please send an email to [Sendgrid](mailto:[email protected]), or file a Github Issue in this repository.
If you have questions, please send an email to [Twilio SendGrid](mailto:[email protected]), or file a GitHub Issue in this repository.
7 changes: 4 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ README.txt
.coverage
coverage.xml
htmlcov
temp*.py
sendgrid.env
temp.py
.vscode

live_test.py
__pycache__
example.pdf
13 changes: 7 additions & 6 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,24 @@ language: python
sudo: false
cache: pip
python:
- '2.6'
- '2.7'
- '3.4'
- '3.5'
- '3.6'
# Enable 3.7 without globally enabling sudo and dist: xenial for other build jobs
matrix:
include:
- python: 3.7
dist: xenial
sudo: true
env:
global:
- CC_TEST_REPORTER_ID=$TRAVIS_CODE_CLIMATE_TOKEN
install:
- if [[ $TRAVIS_PYTHON_VERSION == 2.6* ]]; then pip install unittest2; fi
- python setup.py install
- pip install pyyaml
- pip install flask
- pip install six
- pip install pypandoc
- pip install coverage
- pip install codecov
# - sudo apt-get install -y pandoc
Expand All @@ -30,12 +33,10 @@ before_script:
- chmod +x ./cc-test-reporter
- ./cc-test-reporter before-build
script:
- if [[ $TRAVIS_PYTHON_VERSION == '2.6' ]]; then coverage run -m unittest2 discover; else coverage run -m unittest discover; fi
- coverage run -m unittest discover
after_script:
- codecov
- ./cc-test-reporter after-build --exit-code $?
before_deploy:
- python ./register.py
deploy:
provider: pypi
user: thinkingserious
Expand Down
19 changes: 15 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,17 @@
# Change Log
All notable changes to this project will be documented in this file.

## [6.0.0] - TBD

- https://github.com/sendgrid/sendgrid-python/pull/486
- https://github.com/sendgrid/sendgrid-python/pull/488
- https://github.com/sendgrid/sendgrid-python/pull/493
- https://github.com/sendgrid/sendgrid-python/pull/496
- https://github.com/sendgrid/sendgrid-python/pull/509
- https://github.com/sendgrid/sendgrid-python/pull/510
- https://github.com/sendgrid/sendgrid-python/pull/512
- https://github.com/sendgrid/sendgrid-python/pull/524

## [5.4.1] - 2018-06-26 ##
### Fixed
- [PR #585](https://github.com/sendgrid/sendgrid-python/pull/585): Fix typo in `mail_example.py`. Big thanks to [Anurag Anand](https://github.com/theanuraganand) for the PR!
Expand Down Expand Up @@ -30,7 +41,7 @@ All notable changes to this project will be documented in this file.
- [PR #365](https://github.com/sendgrid/sendgrid-python/pull/365): Write tutorial to deploy simple Django app on Heroku. Big thanks to [Kan Ouivirach](https://github.com/zkan) for the PR!
- [PR #526](https://github.com/sendgrid/sendgrid-python/pull/526): Include code reviews section. Big thanks to [Jared Scott](https://github.com/jlax47) for the PR!
- [PR #414](https://github.com/sendgrid/sendgrid-python/pull/414): Provide utf-8 as encoding explicitly when opening text files. Big thanks to [Ruslan Shestopalyuk](https://github.com/rshest) for the PR!
- [PR #537](https://github.com/sendgrid/sendgrid-python/pull/537): Add unittesting support to .codeclimate.yml. Big thanks to [Prashu Chaudhary](https://github.com/prashuchaudhary) for the PR!
- [PR #537](https://github.com/sendgrid/sendgrid-python/pull/537): Add unit testing support to .codeclimate.yml. Big thanks to [Prashu Chaudhary](https://github.com/prashuchaudhary) for the PR!
- [PR #554](https://github.com/sendgrid/sendgrid-python/pull/554): Ensure params are applied independently. Big thanks to [Nino Milenovic](https://github.com/rubyengineer) for the PR!
- [PR #557](https://github.com/sendgrid/sendgrid-python/pull/557): Client cleanup. Big thanks to [Slam](https://github.com/3lnc) for the PR!
- [PR #569](https://github.com/sendgrid/sendgrid-python/pull/569): Make Mail helper parameters truly optional. Big thanks to [Ian Beck](https://github.com/onecrayon) for the PR!
Expand All @@ -40,21 +51,21 @@ All notable changes to this project will be documented in this file.
- [PR #421](https://github.com/sendgrid/sendgrid-python/pull/421): Typos. Big thanks to [Abhishek Bhatt](https://github.com/ab-bh) for the PR!
- [PR #432](https://github.com/sendgrid/sendgrid-python/pull/432): Typos. Big thanks to [Gaurav Arora](https://github.com/gaurav61) for the PR!
- [PR #431](https://github.com/sendgrid/sendgrid-python/pull/431): Typos. Big thanks to [Gaurav Arora](https://github.com/gaurav61) for the PR!
- [PR #430](https://github.com/sendgrid/sendgrid-python/pull/430): Attempt to sync before executing shell command. Big thanks to [Aditya Narayan](https://github.com/aditnryn) for the PR!
- [PR #430](https://github.com/sendgrid/sendgrid-python/pull/430): Attempt to sync before executing the shell command. Big thanks to [Aditya Narayan](https://github.com/aditnryn) for the PR!
- [PR #429](https://github.com/sendgrid/sendgrid-python/pull/429): Typos. Big thanks to [daluntw](https://github.com/daluntw) for the PR!
- [PR #492](https://github.com/sendgrid/sendgrid-python/pull/492):
Updated date-range in LICENSE file. Big thanks to [Dhruv Srivastava](https://github.com/dhruvhacks) for the PR!
- [PR #482](https://github.com/sendgrid/sendgrid-python/pull/482): Typos. Big thanks to [Karan Samani](https://github.com/Kimi450) for the PR!
- [PR #504](https://github.com/sendgrid/sendgrid-python/pull/504): Fix .codeclimate.yml. Big thanks to [Matt Bernier](https://github.com/mbernier) for the PR!
- [PR #505](https://github.com/sendgrid/sendgrid-python/pull/505): Remove unnecessary github PR templates. Big thanks to [Alex](https://github.com/pushkyn) for the PR!
- [PR #505](https://github.com/sendgrid/sendgrid-python/pull/505): Remove unnecessary GitHub PR templates. Big thanks to [Alex](https://github.com/pushkyn) for the PR!
- [PR #494](https://github.com/sendgrid/sendgrid-python/pull/494): Remove unused import in register.py. Big thanks to [Alexis Rivera De La Torre](https://github.com/gardlt) for the PR!
- [PR #469](https://github.com/sendgrid/sendgrid-python/pull/469):
Removed the trailing white spaces. Big thanks to [Siddaram Halli](https://github.com/SidduH) for the PR!
- [PR #484](https://github.com/sendgrid/sendgrid-python/pull/484): Python style fixes. Big thanks to [Gabriel Krell](https://github.com/gabrielkrell) for the PR!
- [PR #508](https://github.com/sendgrid/sendgrid-python/pull/508): Typos. Big thanks to [Saksham Gupta](https://github.com/shucon) for the PR!
- [PR #353](https://github.com/sendgrid/sendgrid-python/pull/353): Typos. Big thanks to [Yothin M](https://github.com/yothinix) for the PR!
- [PR #564](https://github.com/sendgrid/sendgrid-python/pull/564): Typos. Big thanks to [Chao](https://github.com/chaoranxie) for the PR!
- [PR #424](https://github.com/sendgrid/sendgrid-python/pull/424): Updating version 2.7.8 to 2.7.11 to match version in pyenv install instruction. Big thanks to [Krista LaFentres](https://github.com/lafentres) for the PR!
- [PR #424](https://github.com/sendgrid/sendgrid-python/pull/424): Updating version 2.7.8 to 2.7.11 to match the version in pyenv install instruction. Big thanks to [Krista LaFentres](https://github.com/lafentres) for the PR!
- [PR #454](https://github.com/sendgrid/sendgrid-python/pull/454): Requests to send mail with both plain text and HTML content fail if the HTML content is specified first. Big thanks to [Ryan D'souza](https://github.com/dsouzarc) for the PR!
- [PR #466](https://github.com/sendgrid/sendgrid-python/pull/466): Fixed PEP8 issues. Big thanks to [Piotr Szwarc](https://github.com/blackpioter) for the PR!
- [PR #522](https://github.com/sendgrid/sendgrid-python/pull/522): Typos. Big thanks to [Abhishek J](https://github.com/slashstar) for the PR!
Expand Down
12 changes: 6 additions & 6 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# SendGrid Community Code of Conduct

The SendGrid open source community is made up of members from around the globe with a diverse set of skills, personalities, and experiences. It is through these differences that our community experiences successes and continued growth. When you're working with members of the community, we encourage you to follow these guidelines, which help steer our interactions and strive to maintain a positive, successful and growing community.
The SendGrid open source community is made up of members from around the globe with a diverse set of skills, personalities, and experiences. It is through these differences that our community experiences successes and continued growth. When you're working with members of the community, we encourage you to follow these guidelines, which help steer our interactions and strive to maintain a positive, successful and growing community.

### Be Open
Members of the community are open to collaboration, whether it's on pull requests, code reviews, approvals, issues or otherwise. We're receptive to constructive comments and criticism, as the experiences and skill sets of all members contribute to the whole of our efforts. We're accepting of all who wish to take part in our activities, fostering an environment where anyone can participate, and everyone can make a difference.
Expand All @@ -17,7 +17,7 @@
Community discussions often involve interested parties. We expect participants to be aware when they are conflicted due to employment or other projects they are involved in and disclose those interests to other project members. When in doubt, over-disclose. Perceived conflicts of interest are important to address so that the community’s decisions are credible even when unpopular, difficult or favorable to the interests of one group over another.

### Interpretation
This Code is not exhaustive or complete. It is not a rulebook; it serves to distill our common understanding of a collaborative, shared environment and goals. We expect it to be followed in spirit as much as in the letter. When in doubt, try to abide by [SendGrid’s cultural values](https://sendgrid.com/blog/employee-engagement-the-4h-way) defined by our “4H’s”: Happy, Hungry, Humble and Honest.
This Code is not exhaustive or complete. It is not a rulebook; it serves to distill our common understanding of a collaborative, shared environment and goals. We expect it to be followed in spirit as much as in the letter. When in doubt, try to abide by [SendGrid’s cultural values](https://sendgrid.com/blog/employee-engagement-the-4h-way) defined by our “4H’s”: Happy, Hungry, Humble and Honest.

### Enforcement
Most members of the SendGrid community always comply with this Code, not because of the existence of this Code, but because they have long experience participating in open source communities where the conduct described above is normal and expected. However, failure to observe this Code may be grounds for suspension, reporting the user for abuse or changing permissions for outside contributors.
Expand All @@ -30,12 +30,12 @@
**Contact the Moderators** - You can reach the SendGrid moderators by emailing [email protected].

## Submission to SendGrid Repositories
Finally, just a reminder, changes to the SendGrid repositories will only be accepted upon completion of the [SendGrid Contributor Agreement](https://cla.sendgrid.com).
Finally, just a reminder, changes to the SendGrid repositories will only be accepted upon completion of the [SendGrid Contributor Agreement](https://cla.sendgrid.com).

## Attribution

SendGrid thanks the following, on which it draws for content and inspiration:

[Python Community Code of Conduct](https://www.python.org/psf/codeofconduct/)
[Open Source Initiative General Code of Conduct](https://opensource.org/codeofconduct)
[Apache Code of Conduct](https://www.apache.org/foundation/policies/conduct.html)
* [Python Community Code of Conduct](https://www.python.org/psf/codeofconduct)
* [Open Source Initiative General Code of Conduct](https://opensource.org/codeofconduct)
* [Apache Code of Conduct](https://www.apache.org/foundation/policies/conduct.html)
57 changes: 35 additions & 22 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,27 @@
Hello! Thank you for choosing to help contribute to one of the SendGrid open source libraries. There are many ways you can contribute and help is always welcome. We simply ask that you follow the following contribution policies.

- [CLAs and CCLAs](#cla)
- [Roadmap & Milestones](#roadmap)
- [CLAs and CCLAs](#clas-and-cclas)
- [Feature Request](#feature-request)
- [Submit a Bug Report](#submit-a-bug-report)
- [Please use our Bug Report Template](#please-use-our-bug-report-template)
- [Improvements to the Codebase](#improvements-to-the-codebase)
- [Understanding the Code Base](#understanding-the-codebase)
- [Development Environment](#development-environment)
- [There are two ways to get set up:](#there-are-two-ways-to-get-set-up)
- [1. Using Docker](#1-using-docker)
- [- OR -](#or)
- [2. Install and Run Locally](#2-install-and-run-locally)
- [Prerequisites](#prerequisites)
- [Initial setup:](#initial-setup)
- [Environment Variables](#environment-variables)
- [Execute:](#execute)
- [Understanding the Code Base](#understanding-the-code-base)
- [Testing](#testing)
- [Style Guidelines & Naming Conventions](#style-guidelines-and-naming-conventions)
- [Creating a Pull Request](#creating-a-pull-request)
- [Testing Multiple Versions of Python](#testing-multiple-versions-of-python)
- [Prerequisites:](#prerequisites)
- [Initial setup:](#initial-setup-1)
- [Execute:](#execute-1)
- [Style Guidelines & Naming Conventions](#style-guidelines--naming-conventions)
- [Creating a Pull Request<a name="creating-a-pull-request"></a>](#creating-a-pull-requesta-name%22creating-a-pull-request%22a)
- [Code Reviews](#code-reviews)

<a name="roadmap"></a>
Expand Down Expand Up @@ -46,8 +59,8 @@ A software bug is a demonstrable issue in the code base. In order for us to diag

Before you decide to create a new issue, please try the following:

1. Check the Github issues tab if the identified issue has already been reported, if so, please add a +1 to the existing post.
2. Update to the latest version of this code and check if issue has already been fixed
1. Check the GitHub issues tab if the identified issue has already been reported, if so, please add a +1 to the existing post.
2. Update to the latest version of this code and check if the issue has already been fixed
3. Copy and fill in the Bug Report Template we have provided below

### Please use our Bug Report Template
Expand All @@ -62,15 +75,15 @@ We welcome direct contributions to the sendgrid-python code base. Thank you!
### Development Environment ###
#### There are two ways to get set up: ####
#### 1. Using Docker ####
This is usually the easiest and fastest way to get set up.
This is usually the easiest and fastest way to get set up.
You can use our Docker image to avoid setting up the development environment yourself. See [USAGE.md](https://github.com/sendgrid/sendgrid-python/blob/master/docker/USAGE.md).

#### - OR - ####
#### 2. Install and Run Locally ####

##### Prerequisites #####

- Python 2.6 through 3.6
- Python 2.7 and 3.4+
- [python_http_client](https://github.com/sendgrid/python-http-client)

##### Initial setup: #####
Expand All @@ -87,9 +100,14 @@ First, get your free SendGrid account [here](https://sendgrid.com/free?source=se
Next, update your environment with your [SENDGRID_API_KEY](https://app.sendgrid.com/settings/api_keys).

```bash
echo "export SENDGRID_API_KEY='YOUR_API_KEY'" > sendgrid.env
echo "sendgrid.env" >> .gitignore
source ./sendgrid.env
cp .env_sample .env
```

Then edit `.env` and insert your API key.

```bash
# You do not need to do this when using Docker Compose
source .env
```

##### Execute: #####
Expand All @@ -107,7 +125,7 @@ Working examples that demonstrate usage.

**/tests**

Currently we have unit and profiling tests.
Currently, we have unit and profiling tests.

**/sendgrid**

Expand All @@ -122,12 +140,6 @@ All test files are in the [`test`](https://github.com/sendgrid/sendgrid-python/t

For the purposes of contributing to this repo, please update the [`test_sendgrid.py`](https://github.com/sendgrid/sendgrid-python/tree/master/test/test_sendgrid.py) file with unit tests as you modify the code.

For Python 2.6.*:

`unit2 discover -v`

For Python 2.7.* and up:

`python -m unittest discover -v`

### Testing Multiple Versions of Python
Expand All @@ -149,7 +161,6 @@ You can install it by yourself in user dir by calling `source test/prism.sh`.
Add ```eval "$(pyenv init -)"``` to your shell environment (.profile, .bashrc, etc) after installing tox, you only need to do this once.

```
pyenv install 2.6.9
pyenv install 2.7.11
pyenv install 3.4.3
pyenv install 3.5.0
Expand All @@ -159,7 +170,7 @@ Make sure to change the current working directory to your local version of the r
python setup.py install
```
```
pyenv local 3.5.0 3.4.3 2.7.11 2.6.9
pyenv local 3.5.0 3.4.3 2.7.11
pyenv rehash
```

Expand Down Expand Up @@ -191,8 +202,10 @@ Please run your code through:
```bash
# Clone your fork of the repo into the current directory
git clone https://github.com/sendgrid/sendgrid-python

# Navigate to the newly cloned directory
cd sendgrid-python

# Assign the original repo to a remote called "upstream"
git remote add upstream https://github.com/sendgrid/sendgrid-python
```
Expand Down Expand Up @@ -240,4 +253,4 @@ If you have any additional questions, please feel free to [email](mailto:dx@send

<a name="code-reviews"></a>
## Code Reviews
If you can, please look at open PRs and review them. Give feedback and help us merge these PRs much faster! If you don't know how, Github has some great [information on how to review a Pull Request](https://help.github.com/articles/about-pull-request-reviews/).
If you can, please look at open PRs and review them. Give feedback and help us merge these PRs much faster! If you don't know how, GitHub has some great [information on how to review a Pull Request](https://help.github.com/articles/about-pull-request-reviews/).
Loading