Metadata-Version: 2.1
Name: dftogsheet
Version: 0.0.6
Summary: A Python module for writing pandas DataFrame objects directly to Google Spreadsheets
Home-page: https://github.com/wpbdry/gsheets_pkg
Author: William Dry
Author-email: wpbdry@gmail.com
License: MIT
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
Requires-Dist: cachetools (==3.1.1)
Requires-Dist: certifi (==2019.3.9)
Requires-Dist: chardet (==3.0.4)
Requires-Dist: google-api-python-client (==1.7.9)
Requires-Dist: google-auth (==1.6.3)
Requires-Dist: google-auth-httplib2 (==0.0.3)
Requires-Dist: google-auth-oauthlib (==0.3.0)
Requires-Dist: httplib2 (==0.13.0)
Requires-Dist: idna (==2.8)
Requires-Dist: numpy (==1.16.4)
Requires-Dist: oauthlib (==3.0.1)
Requires-Dist: pandas (==0.24.2)
Requires-Dist: pyasn1 (==0.4.5)
Requires-Dist: pyasn1-modules (==0.2.5)
Requires-Dist: python-dateutil (==2.8.0)
Requires-Dist: pytz (==2019.1)
Requires-Dist: requests (==2.22.0)
Requires-Dist: requests-oauthlib (==1.2.0)
Requires-Dist: rsa (==4.0)
Requires-Dist: six (==1.12.0)
Requires-Dist: uritemplate (==3.0.0)
Requires-Dist: urllib3 (==1.25.3)

# dftogsheet
A Python module for writing pandas DataFrame objects directly to Google Spreadsheets \
dftogsheet is maintained on
[GitHub](https://github.com/wpbdry/dftogsheet_pkg)
and
[PyPI](https://pypi.org/project/dftogsheet/).

## Install dftogsheet
```shell
$ pip install dftogsheet
```

## Setup
1. Enable the
[Google Sheets API](https://developers.google.com/sheets/api/quickstart/python).
2. Enter a name for your project. This is the name that will be displayed when your
app asks for permission to edit your spreadsheets in Google Drive later.
2. Download `credentials.json` into `project-root-folder/.dftogsheet/credentials/` folder.

## Simple usage
```python
import pandas as pd
import dftogsheet

data_frame = pd.DataFrame()
dftogsheet.write_to_sheet(data_frame, spreadsheet_id, sheet_name)
```

### Parameters
There are three mandatory parameters for the above function:
- `data_frame` is any pandas DataFrame object.
- `spreadsheet_id` is the part of the Google Spreadsheet URL
that is between `/d/` and `/edit`.
- `sheet_name` is the name of the sheet within the Google spreadsheet.
E.g. `Sheet1`.

## Advanced usage
With only the above function, this library pretty much only does one thing.
But there is actually a lot more flexibility provided to you if you know what's going on.
Please look into the two functions in `dftogsheets/__init__.py` to understand what is going on
under the hood when you run the above code and to understand how you can use the `Sheet` class
and its methods more powerfully. If you have any suggestions, you are always more than welcome
to [contribute](#how-can-i-contribute) ;)

### Changing scopes, valueInputOption, and location of credentials file
What is the valueInputOption?
Read [this page](https://developers.google.com/sheets/api/reference/rest/v4/ValueInputOption) \
\
These settings are actually controlled by the `Config` class. A new instance of the `Config` class
with default values is created for you in `dftogsheet.write_section_to_sheet` so you don't have to
think about it for the sample code above. However, it is possible to fully customize
these configurations by creating your own `config` object for your project.
Please look into `dftogheets/config.py` to understand how you can do that.

## What's new in version 0.0.6
- Add `Sheet.overwrite()` method.
- Include this method by default.

## How can I contribute?
Thanks for asking! \
I appreciate everyone who contributes, no matter how you choose to do it. \
And if you feel like conforming to my workflow (which I try to stick to), that's great ;)

### My workflow
- Use [Gitflow Workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow).
- Include GitHub issue number in `feature` and `hotfix` branch names.
- If an issue doesn't exist on GitHub, create one.
- Include branch name in every commit message, even on `develop`.
- Only small "one commit" fixes done directly on `develop`.
- Commit style: imperitive sentences in all lower case except proper nouns.
- Merge into `develop` using pull requests and keeping the entire commmit history.
- Merge into `production` squshing commits and keeping only version number in commit message.
- At some point I would like to automatically publish every release to pushed to `production` on PyPy.
- If you add new dependencies, don't use `pip freeze > requirements.txt`. Add new dependencies manually.
Packages we install can install their own dependencies.


