Skip to main content

This module will handle authentication for your SharePoint Online/O365 site, allowing you to make straightforward HTTP requests from Python. It extends the commonly used Requests module, meaning that returned objects are familliar, easy to work with and well documented.

Project description

SharePoint Too

Coverage

Overview

This module will handle authentication for your SharePoint Online/O365 site, allowing you to make straightforward HTTP requests from Python. It extends the commonly used Requests module, meaning that returned objects are familliar, easy to work with and well documented. Leverages requests_ntlm for authentication.

Inspired by Sharepy which seems to no longer be maintained.

NOTE: Currently handles dealing with SharePoint Lists via handy shortcut methods, but you can currently also call sp.get(url, *args, **kwargs) and sp.post(url, *args, **kwargs) with manually assembled SharePoint REST URLs and it will work.

Installation

python3 -m pip install sharepoint-too

Usage

Initiate a SharePoint session

from sharepoint_too import SharePointSession
sp = SharePointSession("example.sharepoint.com")

Make an API call

r = sp.get_lists()

This will return a Requests response object. See the requests documentation for details. By default, the headers accept: application/json;odata=verbose and content-type: application/json;odata=verbose are sent with all requests, so API responses will be formatted as JSON where available.

Headers can be added or overridden by supplying a dictionary to the relevant method:

r = sp.get_lists(headers={"Accept": "application/atom+xml"})

Currently the post() method will send a x-requestdigest header, allowing modifications to be made to SharePoint objects.

Other available methods

sp.get_list_metadata(weblist_url, list_guid=None, list_title=None)
sp.get_list_entity_type(weblist_url, list_guid=None, list_title=None)
sp.get_list_items(weblist_url, list_guid=None, list_title=None)
sp.get_list_item(weblist_url, item_id, list_guid=None, list_title=None)
sp.add_list_item(weblist_url, payload, list_guid=None, list_title=None)
sp.update_list_item(weblist_url, item_id, data, list_guid=None, list_title=None)
sp.upload(weblist_url, item_id, filename, list_guid=None, list_title=None)
sp.delete_list_item(weblist_url, item_id, list_guid=None, list_title=None)

NOTE: Only list_guid or list_title need to be supplied, not both.

Development

To get a list of all commands with descriptions simply run make.

make env
make pip_install
make pip_install_editable

Testing

make pytest
make coverage
make open_coverage

Issues

If you experience any issues, please create an issue on GitHub.

History

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.

0.3.0 (2024-05-10)

  • Changed: Use modern Python tooling. Update to work with Python 3.9.x.

0.2.0 (2021-09-23)

  • Changed: Now you must pass on open file as content along with desired filename. We can't assume the file is local, it may be local or in the cloud. Such as with Django storages.

0.1.2 (2020-06-08)

  • When uploading a file to SharePoint we use just the filename and not the full file path.

0.1.1 (2020-04-27)

  • Updated license and installaton instructions due to typo.

0.1.0 (2020-04-27)

  • First release on PyPI.

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

sharepoint_too-0.3.0.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

sharepoint_too-0.3.0-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file sharepoint_too-0.3.0.tar.gz.

File metadata

  • Download URL: sharepoint_too-0.3.0.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.11

File hashes

Hashes for sharepoint_too-0.3.0.tar.gz
Algorithm Hash digest
SHA256 cf749a2851cce01aa86a0f6768fdfdd0fd54e73383f85339669ef8636a5a062f
MD5 1e98eb0dee448405a450c9d5278ef475
BLAKE2b-256 ae0d6a062fbaa3c14608fb94e4fe34d6a37f6a2042820099307d9121fcbc9c5b

See more details on using hashes here.

File details

Details for the file sharepoint_too-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for sharepoint_too-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4f9dbef5b2fee7a41bf938cf550ee2b7167fd86f8860664a9582106547b91e53
MD5 e55c1ff0c1da88a8dcaceb5767f05f21
BLAKE2b-256 5096ea921ee28130fbc0f973032cee4bada89a18833b6fd000aa9248cb8ae1d1

See more details on using hashes here.

Supported by

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