sorterpy
The official Python SDK for sorter.social's seamless data labeling solutions for any AI/ML workflow.
- Free software: MIT license
- Documentation: https://sorterpy.readthedocs.io
Created by
@zudsniperforsorter.
Installation
pip install sorterpy
API Compatibility
This SDK is compatible with the following sorter.social API versions:
- 2.x
- 2.1.x
- 2.1.1
Basic Usage
from sorterpy import Sorter
# Initialize the client with options
sorter = Sorter(
api_key="your-api-key",
base_url="http://localhost:3000",
options={
"vote_magnitude": "equal", # Use -50 to 50 scale (default)
"verbose": False, # Disable detailed logging (default)
"quiet": False, # Don't suppress logs (default)
"compatibility_warnings": True # Show API version compatibility warnings (default)
"debug_http_full": False # Truncate long http bodies when debug printing them (default)
}
)
# Create a tag
tag = sorter.tag("My Tag", description="A tag for testing")
# Add items to the tag
item1 = tag.item("Item 1", description="First item")
item2 = tag.item("Item 2", description="Second item")
# Vote on items (flexible parameter ordering)
tag.vote(item1, item2, 25) # Prefer item1 over item2 with magnitude 25
# OR
tag.vote(item1, 25, item2) # Same result, different parameter order
# Get tag rankings
rankings = tag.rankings()
# Get sorted and unsorted items
sorted_items = rankings.sorted()
unsorted_items = rankings.unsorted()
# Get a voting pair
left_item, right_item = rankings.pair()
Client Options
The Sorter client accepts the following options:
vote_magnitude: Determines the scale for vote magnitudes"equal"(default): Uses a scale from -50 to 50, where 0 is neutral"positive": Uses a scale from 0 to 100, where 50 is neutral
verbose: Enables detailed logging including HTTP requests and responsesFalse(default): Normal logging (INFO level)True: Detailed logging (DEBUG level)
quiet: Reduces logging to only warnings and errorsFalse(default): Normal logging (INFO level)True: Reduced logging (WARNING level)
compatibility_warnings: Show API version compatibility warningsTrue(default): Show warnings when API version might not be fully compatibleFalse: Suppress compatibility warnings
debug_http_full: Display the entire body of HTTP request / response objects.False(default): Truncate long HTTP req/resp payloads.True: Print full HTTP req/resp payloads. (will result in very long sysout)
Note: If both verbose and quiet are set to True, quiet takes precedence.
Features
- Authenticate Sorter Client with API Key
- Create & Manage Tags
- Create & Utilize Items
- Vote on Pairs (of Items) within Tags
- Get Live Links to Tags or Items
- Retrieve Rankings on Tags (Elo, Sorted Items, Unsorted Items)
- Work with Multiple Attributes for Voting
- Flexible Vote Magnitude Scales1
- Comprehensive Logging System
- API Version Compatibility Checking
Working with Attributes
# Create an attribute
quality_attr = sorter.create_attribute("quality", "Quality of the item")
# Get an attribute by title
attr = sorter.get_attribute("quality")
# List all attributes
attributes = sorter.list_attributes()
# Vote with an attribute
tag.vote(item1, item2, 25, attribute=quality_attr.id)
# Get sorted items by attribute
sorted_by_quality = tag.sorted(attribute="quality")
Working with Rankings
# Get tag rankings
rankings = tag.rankings()
# Get sorted items
sorted_items = rankings.sorted()
# Get unsorted items
unsorted_items = rankings.unsorted()
# Get a voting pair
left_item, right_item = rankings.pair()
# Get skipped items
skipped_items = rankings.skipped()
# Get votes
votes = rankings.votes()
# Get users who voted
users = rankings.users_who_voted()
Logging
The SDK uses loguru for logging with a customized format:
12:34:56 | INFO | sorterpy:__init__:42 - Sorter SDK initialized with base URL: https://sorter.social
The format includes:
- Time (HH:MM:SS)
- Log level
- Abbreviated module name, function, and line number
- Message
Credits
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.
-
This will be removed soon. ↩
Metadata
Release files for sorterpy 0.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sorterpy-0.3.2.tar.gz | 11.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sorterpy-0.3.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.5 kB
Release files / sorterpy-0.3.2.tar.gz
| Download URL | sorterpy-0.3.2.tar.gz |
|---|---|
| Size | 11.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
acc6815c1185aa3e1ca6a71e83a87b4b9fd249a647286a4e63814e14d2a3ff34
|
|
BLAKE2b-256 checksum How to use checksums |
d93bc2e11a3ec72969e26c578b06aaa8e45bb04d45c5ffb12702e3b4718de0ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.12
|
Release files / sorterpy-0.3.2-py3-none-any.whl
| Download URL | sorterpy-0.3.2-py3-none-any.whl |
|---|---|
| Size | 7.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
adc1c7ce55afd262c1ebb75e63c91dffe01bc715734ddbb413b17c13fa1e28c7
|
|
BLAKE2b-256 checksum How to use checksums |
f40ed44b0074b5bb18e1d1b6a687f5ba550a4c06883904215af6463e09dee08a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.12
|