
Security News
Deno 2.2 Improves Dependency Management and Expands Node.js Compatibility
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
|CI| |Conda| |PyPI|
.. |CI| image:: https://github.com/iterative/PyDrive2/workflows/Tests/badge.svg?branch=main :target: https://github.com/iterative/PyDrive2/actions :alt: GHA Tests
.. |Conda| image:: https://img.shields.io/conda/v/conda-forge/PyDrive2.svg?label=conda&logo=conda-forge :target: https://anaconda.org/conda-forge/PyDrive2 :alt: Conda-forge
.. |PyPI| image:: https://img.shields.io/pypi/v/PyDrive2.svg?label=pip&logo=PyPI&logoColor=white :target: https://pypi.org/project/PyDrive2 :alt: PyPI
PyDrive2 is a wrapper library of
google-api-python-client <https://github.com/google/google-api-python-client>
_
that simplifies many common Google Drive API V2 tasks. It is an actively
maintained fork of https://pypi.python.org/pypi/PyDrive <https://pypi.python.org/pypi/PyDrive>
.
By the authors and maintainers of the Git for Data <https://dvc.org>
- DVC
project.
https://pypi.python.org/pypi/PyDrive2 <https://pypi.python.org/pypi/PyDrive2>
_https://docs.iterative.ai/PyDrive2 <https://docs.iterative.ai/PyDrive2>
_https://github.com/iterative/PyDrive2 <https://github.com/iterative/PyDrive2>
_https://github.com/iterative/PyDrive2/releases <https://github.com/iterative/PyDrive2/releases>
_Running tests </pydrive2/test/README.rst>
_Google Drive API V2 <https://developers.google.com/drive/v2/web/about-sdk>
_ into
classes of each resource to make your program more object-oriented.fsspec
_ filesystem implementation.You can install PyDrive2 with regular pip
command.
::
$ pip install PyDrive2
To install the current development version from GitHub, use:
::
$ pip install git+https://github.com/iterative/PyDrive2.git#egg=PyDrive2
Download client_secrets.json from Google API Console and OAuth2.0 is done in two lines. You can customize behavior of OAuth2 in one settings file settings.yaml.
.. code:: python
from pydrive2.auth import GoogleAuth
from pydrive2.drive import GoogleDrive
gauth = GoogleAuth()
gauth.LocalWebserverAuth()
drive = GoogleDrive(gauth)
Upload/update the file with one method. PyDrive2 will do it in the most efficient way.
.. code:: python
file1 = drive.CreateFile({'title': 'Hello.txt'})
file1.SetContentString('Hello')
file1.Upload() # Files.insert()
file1['title'] = 'HelloWorld.txt' # Change title of the file
file1.Upload() # Files.patch()
content = file1.GetContentString() # 'Hello'
file1.SetContentString(content+' World!') # 'Hello World!'
file1.Upload() # Files.update()
file2 = drive.CreateFile()
file2.SetContentFile('hello.png')
file2.Upload()
print('Created file %s with mimeType %s' % (file2['title'],
file2['mimeType']))
# Created file hello.png with mimeType image/png
file3 = drive.CreateFile({'id': file2['id']})
print('Downloading file %s from Google Drive' % file3['title']) # 'hello.png'
file3.GetContentFile('world.png') # Save Drive file as a local file
# or download Google Docs files in an export format provided.
# downloading a docs document as an html file:
docsfile.GetContentFile('test.html', mimetype='text/html')
PyDrive2 handles file listing pagination for you.
.. code:: python
# Auto-iterate through all files that matches this query
file_list = drive.ListFile({'q': "'root' in parents"}).GetList()
for file1 in file_list:
print('title: {}, id: {}'.format(file1['title'], file1['id']))
# Paginate file lists by specifying number of max results
for file_list in drive.ListFile({'maxResults': 10}):
print('Received {} files from Files.list()'.format(len(file_list))) # <= 10
for file1 in file_list:
print('title: {}, id: {}'.format(file1['title'], file1['id']))
PyDrive2 provides easy way to work with your files through fsspec
_
compatible GDriveFileSystem
_.
Install PyDrive2 with the required dependencies
::
$ pip install PyDrive2[fsspec]
.. code:: python
from pydrive2.fs import GDriveFileSystem
# replace `root` with ID of a drive or directory and give service account access to it
fs = GDriveFileSystem("root", client_id=my_id, client_secret=my_secret)
for root, dnames, fnames in fs.walk("root"):
...
.. _GDriveFileSystem
: https://docs.iterative.ai/PyDrive2/fsspec/
All API functions made to be thread-safe.
Thanks to all our contributors!
.. image:: https://contrib.rocks/image?repo=iterative/PyDrive2 :target: https://github.com/iterative/PyDrive2/graphs/contributors
.. _fsspec
: https://filesystem-spec.readthedocs.io/en/latest/
FAQs
Google Drive API made easy. Maintained fork of PyDrive.
We found that PyDrive2 demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
Security News
React's CRA deprecation announcement sparked community criticism over framework recommendations, leading to quick updates acknowledging build tools like Vite as valid alternatives.
Security News
Ransomware payment rates hit an all-time low in 2024 as law enforcement crackdowns, stronger defenses, and shifting policies make attacks riskier and less profitable.