SubredditRules¶
-
class
praw.models.reddit.rules.
SubredditRules
(subreddit: Subreddit)¶ Provide a set of functions to access a Subreddit’s rules.
For example, to list all the rules for a subreddit:
for rule in reddit.subreddit("AskReddit").rules: print(rule)
Moderators can also add rules to the subreddit. For example, to make a rule called
"No spam"
in the subreddit"NAME"
:reddit.subreddit("NAME").rules.mod.add( short_name="No spam", kind="all", description="Do not spam. Spam bad")
-
__call__
() → List[praw.models.reddit.rules.Rule]¶ Return a list of
Rule
s (Deprecated).- Returns
A list of instances of
Rule
.
Deprecated since version 7.1: Use the iterator by removing the call to
SubredditRules
. For example, in order to use the iterator:for rule in reddit.subreddit("test").rules: print(rule)
-
__getitem__
(short_name: Union[str, int, slice]) → praw.models.reddit.rules.Rule¶ Return the Rule for the subreddit with short_name
short_name
.- Parameters
short_name – The short_name of the rule, or the rule number.
Note
Rules fetched using a specific rule name are lazy loaded, so you might have to access an attribute to get all of the expected attributes.
This method is to be used to fetch a specific rule, like so:
rule_name = "No spam" rule = reddit.subreddit("NAME").rules[rule_name] print(rule)
You can also fetch a numbered rule of a subreddit.
Rule numbers start at
0
, so the first rule is at index0
, and the second rule is at index1
, and so on.- Raises
IndexError
if a rule of a specific number does not exist.
Note
You can use negative indexes, such as
-1
, to get the last rule. You can also use slices, to get a subset of rules, such as the last three rules withrules[-3:]
.For example, to fetch the second rule of
AskReddit
:rule = reddit.subreddit("AskReddit").rules[1]
-
__init__
(subreddit: Subreddit)¶ Create a SubredditRules instance.
- Parameters
subreddit – The subreddit whose rules to work with.
-
__iter__
() → Iterator[praw.models.reddit.rules.Rule]¶ Iterate through the rules of the subreddit.
- Returns
An iterator containing all of the rules of a subreddit.
This method is used to discover all rules for a subreddit.
For example, to get the rules for the subreddit
"NAME"
:for rule in reddit.subreddit("NAME").rules: print(rule)
-
mod
()¶ Contain methods to moderate subreddit rules as a whole.
To add rule
"No spam"
to the subreddit"NAME"
try:reddit.subreddit("NAME").rules.mod.add( short_name="No spam", kind="all", description="Do not spam. Spam bad")
To move the fourth rule to the first position, and then to move the prior first rule to where the third rule originally was in the subreddit
"NAME"
:subreddit = reddit.subreddit("NAME") rules = list(subreddit.rules) new_rules = rules[3:4] + rules[1:3] + rules[0:1] + rules[4:] # Alternate: [rules[3]] + rules[1:3] + [rules[0]] + rules[4:] new_rule_list = subreddit.rules.mod.reorder(new_rules)
-