Python SDK and CLI tool for Activesoft Siga automation
Project description
Activesoft Siga CLI
A Python SDK and CLI tool for automating interactions with the Activesoft Siga API. This tool simplifies retrieval of student and responsible party data, and sending messages.
Installation
Install via pip:
pip install activesoft-cli
Or from source:
git clone https://github.com/tsuriu/activesoft-cli.git
cd activesoft-cli
pip install .
CLI Usage
The package includes a command-line interface activesoft-cli.
Configuration
You can provide credentials via flags or environment variables:
--username/SIGA_USERNAME--password/SIGA_PASSWORD--instituicao/SIGA_INSTITUICAO
The CLI automatically saves your session (cookies) to a local JSON file:
~/.activesoft_siga_<instituicao>_<username>.json
Subsequent commands will reuse this session, avoiding full re-authentication. If the session expires, the CLI will automatically attempt to re-login.
You can also specify a custom session path when using the SDK:
client = SigaClient(..., session_path="/path/to/session.json")
Commands
Student Management (students)
Lists students or retrieves details for a specific student.
# List students (defaults to 10)
activesoft-cli students
# Fetch details for a specific student ID
activesoft-cli students --id 103
Responsible Parties (responsaveis)
Lists responsible parties or retrieves specific details.
# List responsible parties (defaults to 21)
activesoft-cli responsaveis --limit 10
# Fetch details for a specific responsible party ID
activesoft-cli responsaveis --id 10188
Messaging (send-message)
Sends a message to a student/responsible party.
activesoft-cli send-message \
--student-id 4907 \
--destinatario-id 13578 \
--message "Your message here" \
--title "Aviso"
SDK Usage
You can also use the SigaClient directly in your Python scripts.
Initialization
import asyncio
from activesoft_cli import SigaClient
async def main():
# Initialize and login
client = SigaClient(
username="your-username",
password="your-password",
instituicao="TEST_INSTITUTION"
)
async with client.client: # Close client manually if not using context manager
if await client.login():
# List students
students = await client.list_alunos(limit=10)
print(students)
if __name__ == "__main__":
asyncio.run(main())
Requirements
- Python 3.8+
httpxloguruclick
License
This project is licensed under the MIT License.
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 activesoft_cli-0.1.3.tar.gz.
File metadata
- Download URL: activesoft_cli-0.1.3.tar.gz
- Upload date:
- Size: 6.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ff3bb7df4bb54208465736ba1dc035e3a6875a8e879ed0e549ffe872e050690
|
|
| MD5 |
ce19a8b30423f21756d1a8d5f7951f06
|
|
| BLAKE2b-256 |
2b8f45e5e78db129c8cd5992b7e6ef9ebe0549db13426f913b20de1ceb3bf0fc
|
File details
Details for the file activesoft_cli-0.1.3-py3-none-any.whl.
File metadata
- Download URL: activesoft_cli-0.1.3-py3-none-any.whl
- Upload date:
- Size: 7.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
122ba0c827b7103d30d4bbe8798072995ead1e1c3ee5c5c838d13f2546713943
|
|
| MD5 |
427b03d1dc09119139c8ad6a4c034bbb
|
|
| BLAKE2b-256 |
72f475eadae23cb9fcabbaccc43efec5c098869fc6bf83352f25600f09c9540e
|