Autodrive is designed to make it as easy as possible to interact with the Google Drive and Sheets APIs via Python

Overview

Autodrive

Autodrive is designed to make it as easy as possible to interact with the Google Drive and Sheets APIs via Python. It is especially designed to provide as much assistance as possible when writing code through hints and autocompletion, as well as via thorough type checking and hinting. These features are currently optimized for VSCode, which you can download here if you wish. They should also work in other Python IDEs.


Documentation: https://autodrive-py.readthedocs.io/en/latest/


Requirements


Python 3.8+

Installation


Google API Credentials

Follow the steps outlined in the Prerequisites section here. Download and save the credentials.json file to the working directory you want to use Autodrive in.

First Connection

To test that your credentials provide the expected connection to your Google Drive account, simply instantiate an Autodrive Drive instance:

from autodrive import Drive

drive = Drive()

If your credentials file was saved as credentials.json, your browser should automatically open and prompt you to authorize the GCP project you created to access your Google Drive. Click the various Allow prompts it will show you to complete your first connection. After you see the browser switch to a page indicating you can close the process, you should see a gdrive_token.json file added to the working directory you saved your credentials.json file in. Next time you use an Autodrive element that needs to connect to your Drive, this token will be used and you will not be prompted to authorize access again until it expires.

Quickstart


The Drive class provides methods for finding and creating objects in your Google Drive, such as Folders or Sheets.

gsheet = drive.create_gsheet("my-autodrive-gsheet")

Finding IDs

If you use Drive to search for your Sheets and Folders, you don't need to supply the GSheet or Folder IDs yourself, but if you know exactly what Sheet you want, then you can directly instantiate a GSheet or folder by pulling the necessary info from the object's url.

For example, if your Sheet's url looks like this:

docs.google.com/spreadsheets/d/19k5cT9Klw1CA8Sum-olP7C0JUo6_kMiOAKDEeHPiSr8/edit#gid=0

Simply copy/paste the id between /d/ and /edit# as the gsheet_id:

from autodrive import GSheet

gsheet = GSheet(gsheet_id="19k5cT9Klw1CA8Sum-olP7C0JUo6_kMiOAKDEeHPiSr8")

Tabs: Because Google calls spreadsheets "Sheets", and their api also refers to the individual sub-sheets in a spreadsheet as "Sheets", Autodrive instead refers to them as "Tabs" for clarity.

For a tab, you can get the tab_id from:

docs.google.com/spreadsheets/d/19k5cT9Klw1CA8Sum-olP7C0JUo6_kMiOAKDEeHPiSr8/edit#gid=234276686

from autodrive import Tab

tab = Tab(
    gsheet_id="19k5cT9Klw1CA8Sum-olP7C0JUo6_kMiOAKDEeHPiSr8",
    tab_title="Sheet2",
    tab_idx=0,
    tab_id=234276686
)

For a folder:

drive.google.com/drive/u/1/folders/1wLx-KMG2jO498xa5ZumB-SEpL-TwczZI

from autodrive import Folder

folder = Folder(folder_id="1wLx-KMG2jO498xa5ZumB-SEpL-TwczZI", name="Test Folder")

Reading and Writing

You can easily download and write data from a Google Sheet using the GSheet, Tab, or Range views.

# Fetches all the data in all cells of the tab:
tab.get_data()

# Writes 8 cells (2 rows of 4 columns, starting in cell A1) to the tab:
tab.write_values(
    [
        [1, 2, 3, 4],
        [5, 6, 7, 8],
    ]
)

GSheet and Range have very similar methods, and all of them allow you to read and write data to only a specific range in the Google Sheet. See the Documentation for more.

You might also like...
Interact and easily use Google Chat room webhooks.

Chat Webhooks Easily interact and send messages with Google Chat's webhooks feature. This API is small, but should be a nice framework for working wit

First Party data integration solution built for marketing teams to enable audience and conversion onboarding into Google Marketing products (Google Ads, Campaign Manager, Google Analytics).

Megalista Sample integration code for onboarding offline/CRM data from BigQuery as custom audiences or offline conversions in Google Ads, Google Analy

Deepak Clouds Torrent is a multipurpose Telegram Bot writen in Python for mirroring files on the Internet to our beloved Google Drive.
Deepak Clouds Torrent is a multipurpose Telegram Bot writen in Python for mirroring files on the Internet to our beloved Google Drive.

Deepak Clouds Torrent is a multipurpose Telegram Bot writen in Python for mirroring files on the Internet to our beloved Google Drive.

A python based all-in-one tool for Google Drive

gdrive-tools A python based all-in-one tool for Google Drive Uses For Gdrive-Tools ✓ generate SA ✓ Add the SA and Add them to TD automatically ✓ Gener

This Mirror Bot is a multipurpose Telegram Bot writen in Python for mirroring files on the Internet to our beloved Google Drive.
This Mirror Bot is a multipurpose Telegram Bot writen in Python for mirroring files on the Internet to our beloved Google Drive.

MIRROR HUNTER This Mirror Bot is a multipurpose Telegram Bot writen in Python for mirroring files on the Internet to our beloved Google Drive. Repo la

Slam Mirror Bot is a multipurpose Telegram Bot written in Python for mirroring files on the Internet to our beloved Google Drive.
Slam Mirror Bot is a multipurpose Telegram Bot written in Python for mirroring files on the Internet to our beloved Google Drive.

Slam Mirror Bot is a multipurpose Telegram Bot written in Python for mirroring files on the Internet to our beloved Google Drive.

A Telegram Bot written in Python for mirroring files on the Internet to your Google Drive

No support is going to be provided of any kind, only maintaining this for vps user on request. This is a Telegram Bot written in Python for mirroring

A Telegram Bot written in Python for mirroring files on the Internet to Google Drive

No support is going to be provided of any kind, only maintaining this for vps user on request. This is a Telegram Bot written in Python for mirroring

A telegram bot writen in python for mirroring files on the internet to Google Drive
A telegram bot writen in python for mirroring files on the internet to Google Drive

owner of this repo :- AYUSH contact me :- AYUSH Slam Mirror Bot This is a telegram bot writen in python for mirroring files on the internet to our bel

Comments
  • Google OAuth Library Changes Invalidate Autodrive Authentication Procedure

    Google OAuth Library Changes Invalidate Autodrive Authentication Procedure

    Describe the bug A clear and concise description of what the bug is.

    To Reproduce Steps to reproduce the behavior:

    1. Attempt to instantiate any object that makes a connection to the Drive or Sheets API.

    Expected behavior Auth Flow should solicit Drive and Sheets CRUD rights and then successfully allow both Drive and Sheets CRUD simultaneously.

    bug 
    opened by chrislarabee 1
Releases(v0.6.3)
  • v0.6.3(Oct 2, 2021)

  • v0.6.2(Oct 2, 2021)

    Changelog

    • Added Autodrive stub files.
    • Fixed an issue with file uploading functionality that could cause multiple files to be accidentally created with the same parameters.
    Source code(tar.gz)
    Source code(zip)
  • v0.6.1(Sep 19, 2021)

  • v0.6.0(Sep 8, 2021)

    Changelog

    • Added file uploading features, including ability to upload files and convert them to appropriate Google formats.
    • Added data appending features to Tab.write_values and GSheet.write_values.
    Source code(tar.gz)
    Source code(zip)
  • v0.5.0(Aug 22, 2021)

    Changelog

    • Added append/delete/insert column(s) methods to Tab.format_grid.
    • Added set_alignment methods to format_text.
    • Made all FullRange arguments interchangeable with range strings in Google Sheet format (i.e. "A1:C10").
    Source code(tar.gz)
    Source code(zip)
  • v0.4.0(Aug 4, 2021)

    Changelog

    • Added support for hex color codes to Color interface.
    • Added set_border_format and set_background_color formatting functionality.
    • Improved write_values method functionality to allow a greater range of input data types.
    • Various performance improvements to underlying functionality related to batching requests.
    Source code(tar.gz)
    Source code(zip)
  • v0.3.0(Jul 24, 2021)

    Changelog

    • Added simple csv and json output methods to GSheet, Tab, and Range.

    Bug Fixes

    • Addressed issue #1, which involved a critical authentication fault caused by some changes Google made to the OAuth libraries underlying Autodrive's authentication procedure.
    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(Jul 21, 2021)

    Changelog

    • Added more fleshed out documentation, including tutorials and guides.
    • Reworked RangeInterfaces to make them more intuitive and easy to use (also fixed a number of bugs in input parsing).
    • Added all the standard number formats used in Google Sheets' dropdown.
    Source code(tar.gz)
    Source code(zip)
  • 0.1.0(Jul 10, 2021)

Owner
Chris Larabee
Chris Larabee
Slam Mirror Bot is a multipurpose Telegram Bot written in Python for mirroring files on the Internet to our beloved Google Drive.

Slam Mirror Bot is a multipurpose Telegram Bot written in Python for mirroring files on the Internet to our beloved Google Drive.

Abinash939 1 Oct 10, 2021
Fetching tweets and integrating it with Kafka and PySpark

KafkaPySpark Zookeeper bin/zookeeper-server-start.sh config/zookeeper.properties Kafka Server bin/kafka-server-start.sh config/server.properties Kafka

Priyansh 2 Dec 29, 2021
This bot is created by AJTimePyro and It accepts direct downloading url & then return file as telegram file.

URL Uploader Bot This is the source code of URL Uploader Bot. And the developer of this bot is AJTimePyro, His Telegram Channel & Group. You can use t

Abhijeet 23 Nov 13, 2022
A python client for the Software-Challenge Germany.

sc-client-python A python client for the Software-Challenge Germany. Creating a new project (Optional) Install virtualenv virtualenv is a tool that cr

rpkak 3 Jan 22, 2022
Ridogram is an advanced multi-featured Telegram UserBot.

Ridogram Ridogram is an advanced multi-featured Telegram UserBot. String Session Collect String Session by running python3 stringsession.py locally or

Md. Ridwanul Islam Muntakim 134 Dec 29, 2022
Feedback-TelegramBot is a resemblance bot which can be deployed on server

Feedback-TelegramBot Feedback-TelegramBot is a resemblance bot which can be deployed on server This work is based on Telegram library, thanks to their

2 Jan 03, 2022
Exporta archivos masivamente del TEC Digital.

TEC Digital Files Exporter Script que permite exportar los archivos de cursos del TEC Digital del Instituto Tecnológico de Costa Rica, debido al borra

Joseph Vargas 22 Apr 08, 2021
A GitHub Action that automatically reports your Advent of Code progress in a table in your README

Advent README Stars This action adds and maintains a stars report in your README based on your Advent of Code progress. Example Table 2021 Results Day

Kevin Duff 36 Dec 30, 2022
PepeSniper is an open-source Discord Nitro auto claimer/redeemer made in python.

PepeSniper is an open-source Discord Nitro auto claimer made in python. It sure as hell is not the fastest sniper out there but it gets the job done in a timely and stable manner. It also supports ho

Unknown User 1 Dec 22, 2021
This project, search all entities related to A2P in twilio

Mirror A2P Twilio This project, search all entities related to A2P in twilio (phone numbers, messaging services, campaign, A2P brand information and P

Iván Cárdenas 2 Nov 03, 2022
ShadowMusic - A Telegram Music Bot with proper functions written in Python with Pyrogram and Py-Tgcalls.

⭐️ Shadow Music ⭐️ A Telegram Music Bot written in Python using Pyrogram and Py-Tgcalls Ready to use method A Support Group, Updates Channel and ready

TeamShadow 8 Aug 17, 2022
Bot facebook

botfb Bot facebook Login via cookies cara install $pkg update && pkg upgrade $pkg install git python $git clone https://github.com/Ainx-BOT/botfb $cd

Fahmi Dev 12 Dec 18, 2022
Currency And Gold Prices - Currency And Gold Prices For Python

Currency_And_Gold_Prices Photos from the app New Update Show range Change better

Ali HemmatNia 4 Sep 19, 2022
A simple discord bot named atticus that sends you the timetable of your classes upon request

A simple discord bot named atticus that sends you the timetable of your classes upon request. Soon, it would you ping you before classes too!

Samhitha 3 Oct 13, 2022
A tool to customize your discord tokens

Fastest Discord Token Manager - Features: Change Token Username Change Token Password Change Token Avatar Change Token Bio This tool is created by Ace

trey 15 Dec 27, 2022
A Pancakeswap v2 trading client (and bot) with limit orders, stop-loss, custom gas strategies, a GUI and much more.

Pancakeswap v2 trading client A Pancakeswap trading client (and bot) with limit orders, stop-loss, custom gas strategies, a GUI and much more. If you

571 Mar 15, 2022
Facebook fishing on telegram bot

Facebook-fishing Facebook fishing on telegram bot تثبيت الاداة pkg update -y pkg upgrade -y pkg install git -y pkg install python -y git clone https:/

sadamalsharabi 7 Oct 18, 2022
A modern,feature-rich, and async ready API wrapper for Discord written in Python

discord.io A modern, easy to use, feature-rich, and async ready API wrapper for Discord written in Python. Key Features Modern Pythonic API using asyn

Vincent 18 Jan 02, 2023
Skyscanner Python SDK

Skyscanner Python SDK Important As of May 1st, 2020, the project is deprecated and no longer maintained. The latest update in v1.1.5 includes changing

Skyscanner 118 Sep 23, 2022
Previewer for VapourSynth scripts.

Standalone previewer for VapourSynth scripts Fork of Endilll's vapoursynth-preview (not maintained anymore) This program is meant to be paired with a

Irrational Encoding Wizardry 26 Dec 16, 2022