Skip to main content

A Google Sheets manager for Python

Project description

GSheetManager

GSheetManager is a Python package that provides a convenient interface for managing Google Sheets. It offers features like batch updates, local caching, and automatic worksheet refreshing to optimize interactions with Google Sheets.

Installation

You can install GSheetManager using pip:

pip install gsheet-manager

Requirements

  • Python 3.6+
  • gspread library

Usage

Here's a basic example of how to use GSheetManager:

from gsheet_manager import GSheetManager

class MySheetManager(GSheetManager):
    @GSheetManager.batch_sync_with_remote
    def update_sales_data(self, product, quantity, price):
        # Find the row for the product
        product_column = 0
        quantity_column = 1
        price_column = 2
        total_column = 3

        for row, row_data in enumerate(self.local_sheet_values):
            if row_data[product_column] == product:
                # Update quantity
                self._set_buffer_cells(row, quantity_column, quantity)
                
                # Update price
                self._set_buffer_cells(row, price_column, price)
                
                # Calculate and update total
                total = quantity * price
                self._set_buffer_cells(row, total_column, total)
                
                print(f"Updated {product}: Quantity={quantity}, Price=${price}, Total=${total}")
                return

        # If product not found, add a new row
        new_row = len(self.local_sheet_values)
        self._set_buffer_cells(new_row, product_column, product)
        self._set_buffer_cells(new_row, quantity_column, quantity)
        self._set_buffer_cells(new_row, price_column, price)
        self._set_buffer_cells(new_row, total_column, quantity * price)
        print(f"Added new product {product}: Quantity={quantity}, Price=${price}, Total=${quantity * price}")

# Usage
manager = MySheetManager('path/to/key_file.json', 'Sales Sheet', 'Product Data')
manager.update_sales_data('Widget A', 100, 19.99)
manager.update_sales_data('Gadget B', 50, 24.99)

Features

  • Batch updates to minimize API calls
  • Local caching of sheet values
  • Automatic worksheet refreshing
  • Decorator for syncing operations with remote

API Reference

GSheetManager(key_file, doc_name, sheet_name)

Creates a new GSheetManager instance.

  • key_file: Path to your Google Service Account key file
  • doc_name: Name of your Google Sheet
  • sheet_name: Name of the worksheet

Methods

  • refresh_worksheet(): Refreshes the worksheet if the timeout has passed
  • sync_from_remote(): Syncs local values from the remote sheet
  • batch_update_remote(): Sends batched updates to the remote sheet
  • _set_buffer_cells(python_row_idx, python_col_idx, value): Sets a value in the local buffer

Decorators

  • @batch_sync_with_remote: Decorator for methods that need to sync with the remote sheet

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gsheet_manager-0.4.0.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gsheet_manager-0.4.0-py3-none-any.whl (4.4 kB view details)

Uploaded Python 3

File details

Details for the file gsheet_manager-0.4.0.tar.gz.

File metadata

  • Download URL: gsheet_manager-0.4.0.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.8.17

File hashes

Hashes for gsheet_manager-0.4.0.tar.gz
Algorithm Hash digest
SHA256 5206f21dfe3dad421a287579552e6e08c8bb9b9575f06fcf86e1a3f8d31d5837
MD5 32dcb4ddb221f27e99b2890b1284c4d9
BLAKE2b-256 1f97e5a311c4826c2f9ff1d0c2b978342b7b85625cd926e76aadd4ebcd668bb6

See more details on using hashes here.

File details

Details for the file gsheet_manager-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: gsheet_manager-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 4.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.8.17

File hashes

Hashes for gsheet_manager-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3038e1ef4311f673bc19434507c4dcc94ec1674915933c27630858a8e7d9cd18
MD5 401e301ba72adde025402b67194bdfb7
BLAKE2b-256 a396a3adbbbb3d52609ae0d2d695784b2dff2adc7e9dfe9ddaf65a2706164518

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page