Releases: amaanjaved1/Rate-My-Professors-API-Client-Python
v2.1.2
v2.1.1
Minor enhancements in the README + added favicons to docs
v2.1.0 - Improve helper functions and docs
Changelog
2.1.0
- Helpers (formerly dedupe):
normalizeCommentnow strips HTML by default and supports optionalstripPunctuation;isValidCommentreturns aValidationResultwithvalidandissuesinstead of a boolean, checking for empty, too short, all caps, excessive repeats, and no alphabetic characters. - Sentiment:
analyzeSentimentnow uses thesentimentpackage (AFINN-165) directly—no callback required. Returnsscore,comparative, andlabel.
v2.0.0 - Major Rework
v2.0.0 — Pure GraphQL
v2 is a complete rewrite of how the client talks to RateMyProfessors. The public API (method names, return types) is largely the same, but the internals are fundamentally different.
Replaced HTML scraping with direct GraphQL
In v1, every request worked by fetching an RMP HTML page, parsing out the embedded window.__RELAY_STORE__ JSON blob, and walking the Relay graph to resolve __ref pointers. This was fragile — any change to RMP's page structure or Relay store shape could break the client.
v2 sends GraphQL POST requests directly to https://www.ratemyprofessors.com/graphql, using the same operation names and fragment names the RMP frontend uses. This is simpler, faster, and far less likely to break.
- Deleted
relay_store.py(~516 lines of Relay store graph traversal) - Deleted
test_relay_store.py(~312 lines of tests for the above) - Added
queries.py— all GraphQL query strings in one place - Rewrote
client.pyfrom ~1,288 lines down to ~774 lines
Simplified configuration
Removed the page-URL config fields. The only URL config is now base_url (the GraphQL endpoint).
Simplified HTTP client
Removed the get_html() method. The client no longer fetches HTML pages at all — only post_json() for GraphQL requests.
Consolidated redundant queries
GET_TEACHER_QUERY and GET_SCHOOL_QUERY have been removed. get_professor() and get_school() now reuse the ratings list queries with a minimal page size, returning the same data in fewer round trips.
Documentation
- Updated README with full API reference
- Updated all docstrings throughout source files
- Updated MkDocs documentation
Testing
- All tests now run against the live RMP GraphQL API
- Removed relay store tests and extras tests
Migration from v1
The public method signatures are unchanged: search_schools, search_professors, get_professor, get_school, get_professor_ratings_page, get_school_ratings_page, iterators, and raw_query all work the same way. No code changes needed for the core API. The only breaking changes are:
- The page-URL config fields are removed from
RMPClientConfig relay_storemodule is removed (was not part of the public API)
v1.0.0 - First working release
Merge pull request #1 from amaanjaved1/feature/Major-code-changes Feature/major code changes
v0.1.0 - First Partial Release
Partial Release
- First partial release to get pypi package setup in place
- Setup github actions deployment workflow
Installation
pip install ratemyprofessors-client