A Python adapter for PowerSchool API integration
Project description
PowerSchool Python Adapter
The PowerSchool Adapter is a Python package designed to facilitate seamless integration with the PowerSchool Student Information System (SIS). It provides a set of tools and functionalities that enable developers to interact programmatically with PowerSchool’s data and services, streamlining tasks such as data retrieval, updates, and synchronization between PowerSchool and other applications. This adapter is particularly useful for educational institutions and software developers aiming to enhance their systems’ interoperability with PowerSchool, ensuring efficient data management and operational workflows.
Prerequisites
This package is to be used with alongside a PowerSchool plugin that has enabled in the plugin.xml. This guide assumes you have PowerSchool API and plugin knowledge and does not cover the details of a plugin or its API.
Installation
pip install powerschool-adapter
Configuration
You need to set some variables in .env.
POWERSCHOOL_SERVER_ADDRESS=
POWERSCHOOL_CLIENT_ID=
POWERSCHOOL_CLIENT_SECRET=
API
PowerSchool
The PowerSchool token is automatically retrieved upon executing an API call.
from dotenv import load_dotenv
from powerschool_adapter.powerschool import PowerSchool
load_dotenv()
SERVER_ADDRESS = os.getenv("POWERSCHOOL_SERVER_ADDRESS")
CLIENT_ID = os.getenv("POWERSCHOOL_CLIENT_ID")
CLIENT_SECRET = os.getenv("POWERSCHOOL_CLIENT_SECRET")
powerschool = PowerSchool(
server_address=SERVER_ADDRESS,
client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
set_table(table)
Aliases: table()
The set_table function is used to specify which database table should be queried.
response = powerschool.table('students').projection(["DCID", "STUDENT_NUMBER", "LASTFIRST"]).set_method("GET").send()
student_data = json.loads(response.to_json())
print(json.dumps(student_data, indent=4))
set_endpoint(query)
Aliases: to_endpoint(), to()
response = powerschool.set_endpoint("/ws/v1/student").set_id(1).get()
student_data = json.loads(response.to_json())
print(json.dumps(student_data, indent=4))
get_endpoint()
Return the current endpoint
setId($id)
Aliases: for_id()
response = powerschool.to("/ws/v1/student").set_id(1).get()
student_data = json.loads(response.to_json())
print(json.dumps(student_data, indent=4))
extensions
response = powerschool.to('/ws/v1/student').set_id(52).expansions(['demographics', 'addresses', 'alerts', 'phones', 'school_enrollment', 'ethnicity_race', 'contact', 'contact_info', 'initial_enrollment']).get()
q(expression)
Aliases: query_expression()
Sets the q variable to the given FIQL expression.
response = powerschool.set_endpoint("/ws/v1/student").q("name.last_name==Ada*").get()
student_data = json.loads(response.to_json())
print(json.dumps(student_data, indent=4))
paginator()
powerschool.table('students').projection(["ID", "STUDENT_NUMBER", "FIRST_NAME"]).sort('STUDENT_NUMBER')
while True:
students = powerschool.paginate(page_size=1)
if not students:
break
for student in students:
print(student)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file powerschool_adapter-1.0.3.tar.gz.
File metadata
- Download URL: powerschool_adapter-1.0.3.tar.gz
- Upload date:
- Size: 11.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7568a0b85fb2630c413dd967faceee345e5a3373ca6d3033a24366739c12ba4
|
|
| MD5 |
a9e76607ec11a67505f91977471f9090
|
|
| BLAKE2b-256 |
7541d26b086020665611617049ce8fae8ae32d5713b09a943ab2842ff516476d
|
File details
Details for the file powerschool_adapter-1.0.3-py3-none-any.whl.
File metadata
- Download URL: powerschool_adapter-1.0.3-py3-none-any.whl
- Upload date:
- Size: 14.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
248a96e428fc09787eac2c0e850a2ece025f7da7f2944dd6d333cdd97895912a
|
|
| MD5 |
30e2a539c5b7283886f15db59c9654a3
|
|
| BLAKE2b-256 |
01cded26e31534d98cab3d07ab044a2a3d0badf1ebc87d733f0ee346f509b8f4
|