1- <!DOCTYPE html>
1+ <!doctype html>
22< html lang ="en ">
3- < head >
4- < meta charset ="UTF-8 " />
5- < meta name ="viewport " content ="width=device-width, initial-scale=1.0 " />
6- < title > Configuration — RMP Client</ title >
7- < link rel ="stylesheet " href ="style.css " />
8- < link id ="hljs-theme " rel ="stylesheet " href ="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11/build/styles/github-dark.min.css " />
9- < script src ="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11/build/highlight.min.js "> </ script >
10- < script >
11- ( function ( ) { var t = localStorage . getItem ( 'rmp-docs-theme' ) ; var d = t === 'dark' || ( ! t && window . matchMedia ( '(prefers-color-scheme:dark)' ) . matches ) ; if ( d ) document . documentElement . classList . add ( 'dark' ) } ) ( ) ;
12- </ script >
13- </ head >
14- < body >
15- < header class ="topbar ">
16- < div class ="topbar-right ">
17- < a href ="https://github.com/amaanjaved1/Rate-My-Professors-API-Client " class ="topbar-btn " target ="_blank " rel ="noopener " aria-label ="GitHub ">
18- < svg width ="18 " height ="18 " viewBox ="0 0 24 24 " fill ="currentColor "> < path d ="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0 0 24 12c0-6.63-5.37-12-12-12z "/> </ svg >
19- </ a >
20- < button class ="topbar-btn " id ="theme-toggle " aria-label ="Toggle theme "> </ button >
21- </ div >
22- </ header >
3+ < head >
4+ < meta charset ="UTF-8 " />
5+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0 " />
6+ < title > Configuration — RMP Client</ title >
7+ < link rel ="icon " href ="favicon.svg " type ="image/svg+xml " />
8+ < link rel ="stylesheet " href ="style.css " />
9+ < link
10+ id ="hljs-theme "
11+ rel ="stylesheet "
12+ href ="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11/build/styles/github-dark.min.css "
13+ />
14+ < script src ="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11/build/highlight.min.js "> </ script >
15+ < script >
16+ ( function ( ) {
17+ var t = localStorage . getItem ( "rmp-docs-theme" ) ;
18+ var d =
19+ t === "dark" ||
20+ ( ! t && window . matchMedia ( "(prefers-color-scheme:dark)" ) . matches ) ;
21+ if ( d ) document . documentElement . classList . add ( "dark" ) ;
22+ } ) ( ) ;
23+ </ script >
24+ </ head >
25+ < body >
26+ < header class ="topbar ">
27+ < div class ="topbar-right ">
28+ < a
29+ href ="https://github.com/amaanjaved1/Rate-My-Professors-API-Client "
30+ class ="topbar-btn "
31+ target ="_blank "
32+ rel ="noopener "
33+ aria-label ="GitHub "
34+ >
35+ < svg width ="18 " height ="18 " viewBox ="0 0 24 24 " fill ="currentColor ">
36+ < path
37+ d ="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0 0 24 12c0-6.63-5.37-12-12-12z "
38+ />
39+ </ svg >
40+ </ a >
41+ < button
42+ class ="topbar-btn "
43+ id ="theme-toggle "
44+ aria-label ="Toggle theme "
45+ > </ button >
46+ </ div >
47+ </ header >
2348
24- < aside class ="sidebar ">
25- < div class ="sidebar-brand "> RMP API Docs</ div >
26- < nav > < ul >
27- < li > < a href ="index.html "> Home</ a > </ li >
28- < li > < a href ="usage.html "> Usage</ a > </ li >
29- < li > < a href ="reference.html "> API Reference</ a > </ li >
30- < li > < a href ="configuration.html " class ="active "> Configuration</ a > </ li >
31- < li > < a href ="extras.html "> Extras</ a > </ li >
32- </ ul > </ nav >
33- </ aside >
49+ < aside class ="sidebar ">
50+ < div class ="sidebar-brand "> RMP API Docs</ div >
51+ < nav >
52+ < ul >
53+ < li > < a href ="index.html "> Home</ a > </ li >
54+ < li > < a href ="usage.html "> Usage</ a > </ li >
55+ < li > < a href ="reference.html "> API Reference</ a > </ li >
56+ < li > < a href ="configuration.html " class ="active "> Configuration</ a > </ li >
57+ < li > < a href ="extras.html "> Extras</ a > </ li >
58+ </ ul >
59+ </ nav >
60+ </ aside >
3461
35- < main class ="content ">
36- < h1 > Configuration</ h1 >
37- < p > The client is configured via < code > RMPClientConfig</ code > . All fields have sensible defaults.</ p >
38- < pre > < code class ="language-python "> from rmp_client import RMPClientConfig, RMPClient
62+ < main class ="content ">
63+ < h1 > Configuration</ h1 >
64+ < p >
65+ The client is configured via < code > RMPClientConfig</ code > . All fields
66+ have sensible defaults.
67+ </ p >
68+ < pre > < code class ="language-python "> from rmp_client import RMPClientConfig, RMPClient
3969
4070config = RMPClientConfig(
4171 base_url="https://www.ratemyprofessors.com/graphql",
@@ -46,31 +76,85 @@ <h1>Configuration</h1>
4676with RMPClient(config) as client:
4777 ...</ code > </ pre >
4878
49- < h2 id ="available-options "> Available Options < a href ="#available-options " class ="anchor "> #</ a > </ h2 >
50- < table >
51- < tr > < th > Option</ th > < th > Type</ th > < th > Default</ th > < th > Description</ th > </ tr >
52- < tr > < td > < code > base_url</ code > </ td > < td > < code > str</ code > </ td > < td > < code > https://...graphql</ code > </ td > < td > GraphQL endpoint URL</ td > </ tr >
53- < tr > < td > < code > timeout_seconds</ code > </ td > < td > < code > float</ code > </ td > < td > < code > 10.0</ code > </ td > < td > HTTP request timeout</ td > </ tr >
54- < tr > < td > < code > max_retries</ code > </ td > < td > < code > int</ code > </ td > < td > < code > 3</ code > </ td > < td > Number of retry attempts for failed requests</ td > </ tr >
55- < tr > < td > < code > rate_limit_per_minute</ code > </ td > < td > < code > int</ code > </ td > < td > < code > 60</ code > </ td > < td > Max requests per minute (token bucket)</ td > </ tr >
56- < tr > < td > < code > user_agent</ code > </ td > < td > < code > str</ code > </ td > < td > Firefox UA</ td > < td > User-Agent header</ td > </ tr >
57- < tr > < td > < code > default_headers</ code > </ td > < td > < code > Mapping[str, str]</ code > </ td > < td > UA + Accept-Language</ td > < td > Default headers for all requests</ td > </ tr >
58- </ table >
79+ < h2 id ="available-options ">
80+ Available Options < a href ="#available-options " class ="anchor "> #</ a >
81+ </ h2 >
82+ < table >
83+ < tr >
84+ < th > Option</ th >
85+ < th > Type</ th >
86+ < th > Default</ th >
87+ < th > Description</ th >
88+ </ tr >
89+ < tr >
90+ < td > < code > base_url</ code > </ td >
91+ < td > < code > str</ code > </ td >
92+ < td > < code > https://...graphql</ code > </ td >
93+ < td > GraphQL endpoint URL</ td >
94+ </ tr >
95+ < tr >
96+ < td > < code > timeout_seconds</ code > </ td >
97+ < td > < code > float</ code > </ td >
98+ < td > < code > 10.0</ code > </ td >
99+ < td > HTTP request timeout</ td >
100+ </ tr >
101+ < tr >
102+ < td > < code > max_retries</ code > </ td >
103+ < td > < code > int</ code > </ td >
104+ < td > < code > 3</ code > </ td >
105+ < td > Number of retry attempts for failed requests</ td >
106+ </ tr >
107+ < tr >
108+ < td > < code > rate_limit_per_minute</ code > </ td >
109+ < td > < code > int</ code > </ td >
110+ < td > < code > 60</ code > </ td >
111+ < td > Max requests per minute (token bucket)</ td >
112+ </ tr >
113+ < tr >
114+ < td > < code > user_agent</ code > </ td >
115+ < td > < code > str</ code > </ td >
116+ < td > Firefox UA</ td >
117+ < td > User-Agent header</ td >
118+ </ tr >
119+ < tr >
120+ < td > < code > default_headers</ code > </ td >
121+ < td > < code > Mapping[str, str]</ code > </ td >
122+ < td > UA + Accept-Language</ td >
123+ < td > Default headers for all requests</ td >
124+ </ tr >
125+ </ table >
59126
60- < h2 id ="rate-limiting "> Rate Limiting < a href ="#rate-limiting " class ="anchor "> #</ a > </ h2 >
61- < p > The client uses a token-bucket algorithm. Tokens replenish continuously. Each request consumes one token. If no tokens are available, the request blocks until one becomes available.</ p >
62- < pre > < code class ="language-python "> config = RMPClientConfig(rate_limit_per_minute=30)</ code > </ pre >
127+ < h2 id ="rate-limiting ">
128+ Rate Limiting < a href ="#rate-limiting " class ="anchor "> #</ a >
129+ </ h2 >
130+ < p >
131+ The client uses a token-bucket algorithm. Tokens replenish continuously.
132+ Each request consumes one token. If no tokens are available, the request
133+ blocks until one becomes available.
134+ </ p >
135+ < pre > < code class ="language-python "> config = RMPClientConfig(rate_limit_per_minute=30)</ code > </ pre >
63136
64- < h2 id ="retries "> Retries < a href ="#retries " class ="anchor "> #</ a > </ h2 >
65- < p > On 5xx errors or network failures, the client retries up to < code > max_retries</ code > times. 4xx errors are < strong > not</ strong > retried. After exhausting retries, a < code > RetryError</ code > is raised.</ p >
66- < pre > < code class ="language-python "> config = RMPClientConfig(max_retries=5)</ code > </ pre >
137+ < h2 id ="retries "> Retries < a href ="#retries " class ="anchor "> #</ a > </ h2 >
138+ < p >
139+ On 5xx errors or network failures, the client retries up to
140+ < code > max_retries</ code > times. 4xx errors are
141+ < strong > not</ strong > retried. After exhausting retries, a
142+ < code > RetryError</ code > is raised.
143+ </ p >
144+ < pre > < code class ="language-python "> config = RMPClientConfig(max_retries=5)</ code > </ pre >
67145
68- < h2 id ="timeouts "> Timeouts < a href ="#timeouts " class ="anchor "> #</ a > </ h2 >
69- < p > The < code > timeout_seconds</ code > value applies to each individual HTTP request (connect + read).</ p >
70- < pre > < code class ="language-python "> config = RMPClientConfig(timeout_seconds=30.0)</ code > </ pre >
71- </ main >
146+ < h2 id ="timeouts "> Timeouts < a href ="#timeouts " class ="anchor "> #</ a > </ h2 >
147+ < p >
148+ The < code > timeout_seconds</ code > value applies to each individual HTTP
149+ request (connect + read).
150+ </ p >
151+ < pre > < code class ="language-python "> config = RMPClientConfig(timeout_seconds=30.0)</ code > </ pre >
152+ </ main >
72153
73- < aside class ="toc "> < div class ="toc-title "> On this page</ div > < ul id ="toc-list "> </ ul > </ aside >
74- < script src ="script.js "> </ script >
75- </ body >
154+ < aside class ="toc ">
155+ < div class ="toc-title "> On this page</ div >
156+ < ul id ="toc-list "> </ ul >
157+ </ aside >
158+ < script src ="script.js "> </ script >
159+ </ body >
76160</ html >
0 commit comments