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)
Metadata
Release files for powerschool-adapter 1.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| powerschool_adapter-1.0.3.tar.gz | 11.0 kB | Without provenance | Details for powerschool_adapter-1.0.3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| powerschool_adapter-1.0.3-py3-none-any.whl | Python 3 | none | any | Details for powerschool_adapter-1.0.3-py3-none-any.whl |
Total release size: 25.0 kB
Release files / powerschool_adapter-1.0.3.tar.gz
| Download URL | powerschool_adapter-1.0.3.tar.gz |
|---|---|
| Size | 11.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e7568a0b85fb2630c413dd967faceee345e5a3373ca6d3033a24366739c12ba4
|
|
BLAKE2b-256 checksum How to use checksums |
7541d26b086020665611617049ce8fae8ae32d5713b09a943ab2842ff516476d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / powerschool_adapter-1.0.3-py3-none-any.whl
| Download URL | powerschool_adapter-1.0.3-py3-none-any.whl |
|---|---|
| Size | 14.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
248a96e428fc09787eac2c0e850a2ece025f7da7f2944dd6d333cdd97895912a
|
|
BLAKE2b-256 checksum How to use checksums |
01cded26e31534d98cab3d07ab044a2a3d0badf1ebc87d733f0ee346f509b8f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Security for powerschool-adapter 1.0.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.