sharepointlib


Namesharepointlib JSON
Version 0.0.13 PyPI version JSON
download
home_pageNone
SummaryMicrosoft SharePoint client Python package that uses the requests library
upload_time2025-07-17 16:48:25
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords microsoft sharepoint python api office365 graphapi
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # sharepointlib

- [Description](#package-description)
- [Usage](#usage)
- [Installation](#installation)
- [License](#license)

## Package Description

Microsoft SharePoint client Python package that uses the [requests](https://pypi.org/project/requests/) library.

> [!IMPORTANT]  
> This packages uses pydantic~=1.0!

## Usage

- [sharepointlib](#sharepointlib)

from a script:

```python
import sharepointlib
import logging
import pandas as pd

logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s")

client_id = "123..."
tenant_id = "456..."
client_secret = "xxxx"
sp_domain = "companygroup.sharepoint.com"

sp_site_name = "My Site"
sp_site_id = "companygroup.sharepoint.com,1233124124"
sp_site_drive_id = "b!1234567890"

# Initialize SharePoint client
sharepoint = sharepointlib.SharePoint(client_id=client_id, 
                                      tenant_id=tenant_id, 
                                      client_secret=client_secret, 
                                      sp_domain=sp_domain)
```

```python
# Gets the site ID for a given site name
response = sharepoint.get_site_info(name=sp_site_name)
if response.status_code == 200:
    print(response.content.id)
    df = pd.DataFrame([response.content.dict()])
    print(df)
```

```python
# Gets the hostname and site details for a specified site ID
response = sharepoint.get_hostname_info(site_id=sp_site_id)
if response.status_code == 200:
    df = pd.DataFrame([response.content.dict()])
    print(df)
```

Drives:

```python
# Gets a list of the Drive IDs for a given site ID
response = sharepoint.list_drives(site_id=sp_site_id)
if response.status_code == 200:
    df = pd.DataFrame([item.dict() for item in response.content])
    print(df)
```

```python
# Gets the folder ID for a specified folder within a drive ID
response = sharepoint.get_dir_info(drive_id=sp_site_drive_id,
                                   path="Sellout/Support")
if response.status_code == 200:
    df = pd.DataFrame([response.content.dict()])
    print(df)
```

```python
# List content (files and folders) of a specific folder
response = sharepoint.list_dir(drive_id=sp_site_drive_id, 
                               path="Sellout/Support")
if response.status_code == 200:
    df = pd.DataFrame([item.dict() for item in response.content])
    print(df)
```

```python
# Creates a new folder in a specified drive ID
response = sharepoint.create_dir(drive_id=sp_site_drive_id, 
                                 path="Sellout/Support",
                                 name="Archive")
if response.status_code in (200, 201):
    df = pd.DataFrame([response.content.dict()])
    print(df)

response = sharepoint.create_dir(drive_id=sp_site_drive_id, 
                                 path="Sellout/Support",
                                 name="Test")
if response.status_code in (200, 201):
    df = pd.DataFrame([response.content.dict()])
    print(df)
```

```python
# Deletes a folder from a specified drive ID
response = sharepoint.delete_dir(drive_id=sp_site_drive_id, 
                                 path="Sellout/Support/Test")
if response.status_code in (200, 204):
    print("Folder deleted successfully")
```

```python
# Renames a folder in a specified drive ID
response = sharepoint.rename_folder(drive_id=sp_site_drive_id, 
                                    path="Sellout/Support",
                                    new_name="Old")
if response.status_code == 200:
    df = pd.DataFrame([response.content.dict()])
    print(df)
```

```python
# Retrieves information about a specific file in a drive ID
response = sharepoint.get_file_info(drive_id=sp_site_drive_id, 
                                    filename="Sellout/Support/Sellout.xlsx")
if response.status_code in (200, 202):
    print(response.content.id)
    df = pd.DataFrame([response.content.dict()])
    print(df)
```

```python
# Copy a file from one folder to another within the same drive ID
response = sharepoint.copy_file(drive_id=sp_site_drive_id, 
                                filename="Sellout/Support/Sellout.xlsx",
                                target_path="Sellout/Support/Archive")
if response.status_code in (200, 202):
    print("File copied successfully")
```

```python
# Moves a file from one folder to another within the same drive ID
response = sharepoint.move_file(drive_id=sp_site_drive_id, 
                                filename="Sellout/Support/Archive/Sellout.xlsx", 
                                target_path="Sellout")
if response.status_code == 200:
    df = pd.DataFrame([response.content.dict()])
    print(df)
```

```python
# Deletes a file from a specified drive ID
response = sharepoint.delete_file(drive_id=sp_site_drive_id, 
                                  filename="Sellout/Sellout.xlsx")
if response.status_code in (200, 204):
    print("File deleted successfully")
```

```python
# Renames a file in a specified drive ID.
response = sharepoint.rename_file(drive_id=sp_site_drive_id, 
                                  filename="Sellout/Support/Archive/Sellout.xlsx", 
                                  new_name="Sellout_New_Name.xlsx")
if response.status_code == 200:
    df = pd.DataFrame([response.content.dict()])
    print(df)
```

```python
# Downloads a file from a specified remote path in a drive ID to a local path
# Examples for local_path (databricks):
#   local_path=r"/Workspace/Users/admin@admin.com/Sellout.xlsm"
#   local_path=r"/Volumes/lakehouse/sadp/Sellout.xlsm"
response = sharepoint.download_file(drive_id=sp_site_drive_id, 
                                    remote_path=r"Sellout/Support/Sellout.xlsx",
                                    local_path=r"C:\Users\admin\Downloads\Sellout.xlsx")
if response.status_code == 200:
    print("File downloaded successfully")
```

```python
# Downloads an Excel file from SharePoint directly into memory and loads it into a Pandas DataFrame
from io import BytesIO

response = sharepoint.download_file_to_memory(drive_id=sp_site_drive_id,
                                              remote_path="Sellout/Support/Sellout.xlsx")

if response.status_code == 200 and response.content is not None:
    excel_data = BytesIO(response.content)
    df = pd.read_excel(excel_data)
    print(df)
```

```python
# Uploads a file to a specified remote path in a SharePoint drive ID
response = sharepoint.upload_file(drive_id=sp_site_drive_id, 
                                  local_path=r"C:\Users\admin\Downloads\Sellout.xlsx",
                                  remote_path=r"Sellout/Support/Archive/Sellout.xlsx")
if response.status_code in (200, 201):
    print(response.content)
```

## Installation

- [sharepointlib](#sharepointlib)

Install python and pip if you have not already.

Then run:

```bash
pip install pip --upgrade
```

For production:

```bash
pip install sharepointlib
```

This will install the package and all of it's python dependencies.

If you want to install the project for development:

```bash
git clone https://github.com/aghuttun/sharepointlib.git
cd sharepointlib
pip install -e ".[dev]"
```

To test the development package: [Testing](#testing)

## License

- [sharepointlib](#sharepointlib)

BSD License (see license file)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "sharepointlib",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "Paulo Portela <portela.paulo@gmail.com>",
    "keywords": "Microsoft, SharePoint, Python, API, Office365, GraphAPI",
    "author": null,
    "author_email": "Paulo Portela <portela.paulo@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/cf/2a/12221cfc42ebffb82081396464f2f343e40c331279fe689e3cd8fc25ef03/sharepointlib-0.0.13.tar.gz",
    "platform": null,
    "description": "# sharepointlib\r\n\r\n- [Description](#package-description)\r\n- [Usage](#usage)\r\n- [Installation](#installation)\r\n- [License](#license)\r\n\r\n## Package Description\r\n\r\nMicrosoft SharePoint client Python package that uses the [requests](https://pypi.org/project/requests/) library.\r\n\r\n> [!IMPORTANT]  \r\n> This packages uses pydantic~=1.0!\r\n\r\n## Usage\r\n\r\n- [sharepointlib](#sharepointlib)\r\n\r\nfrom a script:\r\n\r\n```python\r\nimport sharepointlib\r\nimport logging\r\nimport pandas as pd\r\n\r\nlogging.basicConfig(level=logging.INFO, format=\"%(asctime)s - %(name)s - %(levelname)s - %(message)s\")\r\n\r\nclient_id = \"123...\"\r\ntenant_id = \"456...\"\r\nclient_secret = \"xxxx\"\r\nsp_domain = \"companygroup.sharepoint.com\"\r\n\r\nsp_site_name = \"My Site\"\r\nsp_site_id = \"companygroup.sharepoint.com,1233124124\"\r\nsp_site_drive_id = \"b!1234567890\"\r\n\r\n# Initialize SharePoint client\r\nsharepoint = sharepointlib.SharePoint(client_id=client_id, \r\n                                      tenant_id=tenant_id, \r\n                                      client_secret=client_secret, \r\n                                      sp_domain=sp_domain)\r\n```\r\n\r\n```python\r\n# Gets the site ID for a given site name\r\nresponse = sharepoint.get_site_info(name=sp_site_name)\r\nif response.status_code == 200:\r\n    print(response.content.id)\r\n    df = pd.DataFrame([response.content.dict()])\r\n    print(df)\r\n```\r\n\r\n```python\r\n# Gets the hostname and site details for a specified site ID\r\nresponse = sharepoint.get_hostname_info(site_id=sp_site_id)\r\nif response.status_code == 200:\r\n    df = pd.DataFrame([response.content.dict()])\r\n    print(df)\r\n```\r\n\r\nDrives:\r\n\r\n```python\r\n# Gets a list of the Drive IDs for a given site ID\r\nresponse = sharepoint.list_drives(site_id=sp_site_id)\r\nif response.status_code == 200:\r\n    df = pd.DataFrame([item.dict() for item in response.content])\r\n    print(df)\r\n```\r\n\r\n```python\r\n# Gets the folder ID for a specified folder within a drive ID\r\nresponse = sharepoint.get_dir_info(drive_id=sp_site_drive_id,\r\n                                   path=\"Sellout/Support\")\r\nif response.status_code == 200:\r\n    df = pd.DataFrame([response.content.dict()])\r\n    print(df)\r\n```\r\n\r\n```python\r\n# List content (files and folders) of a specific folder\r\nresponse = sharepoint.list_dir(drive_id=sp_site_drive_id, \r\n                               path=\"Sellout/Support\")\r\nif response.status_code == 200:\r\n    df = pd.DataFrame([item.dict() for item in response.content])\r\n    print(df)\r\n```\r\n\r\n```python\r\n# Creates a new folder in a specified drive ID\r\nresponse = sharepoint.create_dir(drive_id=sp_site_drive_id, \r\n                                 path=\"Sellout/Support\",\r\n                                 name=\"Archive\")\r\nif response.status_code in (200, 201):\r\n    df = pd.DataFrame([response.content.dict()])\r\n    print(df)\r\n\r\nresponse = sharepoint.create_dir(drive_id=sp_site_drive_id, \r\n                                 path=\"Sellout/Support\",\r\n                                 name=\"Test\")\r\nif response.status_code in (200, 201):\r\n    df = pd.DataFrame([response.content.dict()])\r\n    print(df)\r\n```\r\n\r\n```python\r\n# Deletes a folder from a specified drive ID\r\nresponse = sharepoint.delete_dir(drive_id=sp_site_drive_id, \r\n                                 path=\"Sellout/Support/Test\")\r\nif response.status_code in (200, 204):\r\n    print(\"Folder deleted successfully\")\r\n```\r\n\r\n```python\r\n# Renames a folder in a specified drive ID\r\nresponse = sharepoint.rename_folder(drive_id=sp_site_drive_id, \r\n                                    path=\"Sellout/Support\",\r\n                                    new_name=\"Old\")\r\nif response.status_code == 200:\r\n    df = pd.DataFrame([response.content.dict()])\r\n    print(df)\r\n```\r\n\r\n```python\r\n# Retrieves information about a specific file in a drive ID\r\nresponse = sharepoint.get_file_info(drive_id=sp_site_drive_id, \r\n                                    filename=\"Sellout/Support/Sellout.xlsx\")\r\nif response.status_code in (200, 202):\r\n    print(response.content.id)\r\n    df = pd.DataFrame([response.content.dict()])\r\n    print(df)\r\n```\r\n\r\n```python\r\n# Copy a file from one folder to another within the same drive ID\r\nresponse = sharepoint.copy_file(drive_id=sp_site_drive_id, \r\n                                filename=\"Sellout/Support/Sellout.xlsx\",\r\n                                target_path=\"Sellout/Support/Archive\")\r\nif response.status_code in (200, 202):\r\n    print(\"File copied successfully\")\r\n```\r\n\r\n```python\r\n# Moves a file from one folder to another within the same drive ID\r\nresponse = sharepoint.move_file(drive_id=sp_site_drive_id, \r\n                                filename=\"Sellout/Support/Archive/Sellout.xlsx\", \r\n                                target_path=\"Sellout\")\r\nif response.status_code == 200:\r\n    df = pd.DataFrame([response.content.dict()])\r\n    print(df)\r\n```\r\n\r\n```python\r\n# Deletes a file from a specified drive ID\r\nresponse = sharepoint.delete_file(drive_id=sp_site_drive_id, \r\n                                  filename=\"Sellout/Sellout.xlsx\")\r\nif response.status_code in (200, 204):\r\n    print(\"File deleted successfully\")\r\n```\r\n\r\n```python\r\n# Renames a file in a specified drive ID.\r\nresponse = sharepoint.rename_file(drive_id=sp_site_drive_id, \r\n                                  filename=\"Sellout/Support/Archive/Sellout.xlsx\", \r\n                                  new_name=\"Sellout_New_Name.xlsx\")\r\nif response.status_code == 200:\r\n    df = pd.DataFrame([response.content.dict()])\r\n    print(df)\r\n```\r\n\r\n```python\r\n# Downloads a file from a specified remote path in a drive ID to a local path\r\n# Examples for local_path (databricks):\r\n#   local_path=r\"/Workspace/Users/admin@admin.com/Sellout.xlsm\"\r\n#   local_path=r\"/Volumes/lakehouse/sadp/Sellout.xlsm\"\r\nresponse = sharepoint.download_file(drive_id=sp_site_drive_id, \r\n                                    remote_path=r\"Sellout/Support/Sellout.xlsx\",\r\n                                    local_path=r\"C:\\Users\\admin\\Downloads\\Sellout.xlsx\")\r\nif response.status_code == 200:\r\n    print(\"File downloaded successfully\")\r\n```\r\n\r\n```python\r\n# Downloads an Excel file from SharePoint directly into memory and loads it into a Pandas DataFrame\r\nfrom io import BytesIO\r\n\r\nresponse = sharepoint.download_file_to_memory(drive_id=sp_site_drive_id,\r\n                                              remote_path=\"Sellout/Support/Sellout.xlsx\")\r\n\r\nif response.status_code == 200 and response.content is not None:\r\n    excel_data = BytesIO(response.content)\r\n    df = pd.read_excel(excel_data)\r\n    print(df)\r\n```\r\n\r\n```python\r\n# Uploads a file to a specified remote path in a SharePoint drive ID\r\nresponse = sharepoint.upload_file(drive_id=sp_site_drive_id, \r\n                                  local_path=r\"C:\\Users\\admin\\Downloads\\Sellout.xlsx\",\r\n                                  remote_path=r\"Sellout/Support/Archive/Sellout.xlsx\")\r\nif response.status_code in (200, 201):\r\n    print(response.content)\r\n```\r\n\r\n## Installation\r\n\r\n- [sharepointlib](#sharepointlib)\r\n\r\nInstall python and pip if you have not already.\r\n\r\nThen run:\r\n\r\n```bash\r\npip install pip --upgrade\r\n```\r\n\r\nFor production:\r\n\r\n```bash\r\npip install sharepointlib\r\n```\r\n\r\nThis will install the package and all of it's python dependencies.\r\n\r\nIf you want to install the project for development:\r\n\r\n```bash\r\ngit clone https://github.com/aghuttun/sharepointlib.git\r\ncd sharepointlib\r\npip install -e \".[dev]\"\r\n```\r\n\r\nTo test the development package: [Testing](#testing)\r\n\r\n## License\r\n\r\n- [sharepointlib](#sharepointlib)\r\n\r\nBSD License (see license file)\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Microsoft SharePoint client Python package that uses the requests library",
    "version": "0.0.13",
    "project_urls": {
        "Documentation": "https://github.com/aghuttun/sharepointlib/blob/main/README.md",
        "Homepage": "https://github.com/aghuttun/sharepointlib"
    },
    "split_keywords": [
        "microsoft",
        " sharepoint",
        " python",
        " api",
        " office365",
        " graphapi"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ace6840b3da173c0c1c9762d953850b347210825e013b3113a9c6d651bf41690",
                "md5": "8e0010e0606346511d1553c503173ce8",
                "sha256": "78306d70fb3a5ddbbf8d53a4be271f2103d25a1d587bb900bb982503a0908c94"
            },
            "downloads": -1,
            "filename": "sharepointlib-0.0.13-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8e0010e0606346511d1553c503173ce8",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 12003,
            "upload_time": "2025-07-17T16:48:23",
            "upload_time_iso_8601": "2025-07-17T16:48:23.698373Z",
            "url": "https://files.pythonhosted.org/packages/ac/e6/840b3da173c0c1c9762d953850b347210825e013b3113a9c6d651bf41690/sharepointlib-0.0.13-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cf2a12221cfc42ebffb82081396464f2f343e40c331279fe689e3cd8fc25ef03",
                "md5": "31b52743b042cb3c849e2059a5ace4ed",
                "sha256": "44f64c58fbcf2516168f95395d1a37f4489fa253bfa1ab40d3bf4394cf1f48f0"
            },
            "downloads": -1,
            "filename": "sharepointlib-0.0.13.tar.gz",
            "has_sig": false,
            "md5_digest": "31b52743b042cb3c849e2059a5ace4ed",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 13345,
            "upload_time": "2025-07-17T16:48:25",
            "upload_time_iso_8601": "2025-07-17T16:48:25.169994Z",
            "url": "https://files.pythonhosted.org/packages/cf/2a/12221cfc42ebffb82081396464f2f343e40c331279fe689e3cd8fc25ef03/sharepointlib-0.0.13.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-17 16:48:25",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "aghuttun",
    "github_project": "sharepointlib",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "sharepointlib"
}
        
Elapsed time: 1.57704s