Skip to content

Commit

Permalink
Merge pull request #8 from knewkarma-io/dev
Browse files Browse the repository at this point in the history
3.0.0
  • Loading branch information
rly0nheart authored Oct 20, 2024
2 parents 346dee9 + 72db589 commit bcc93fc
Show file tree
Hide file tree
Showing 8 changed files with 146 additions and 690 deletions.
10 changes: 2 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,11 @@
import karmakaze
import requests

snp = karmakaze.SanitiseAndParse()
username = "AutoModerator"
response = requests.get(f"https://www.reddit.com/user/{username}/about.json").json()

sanitise = karmakaze.Sanitise() # Provides static methods for sanitising raw response data
parse = karmakaze.Parse() # Provides methods for parsing the sanitised data

sanitised_data = sanitise.subreddit_or_user(response=response)
parsed_data = parse.user(data=sanitised_data)

print(sanitised_data)
print(parsed_data)
print(snp.user(response=response))
```

## License
Expand Down
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[tool.poetry]
name = "karmakaze"
version = "2.0.1"
description = "Data sanitation engine for Knew Karma"
version = "3.0.0"
description = "Response sanitation & parsing engine for KRAW"
authors = ["Richard Mwewa <[email protected]>", "Knew Karma IO <[email protected]"]
license = "GPL-3.0+"
readme = "README.md"
Expand Down
4 changes: 2 additions & 2 deletions src/karmakaze/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
from ._main import Parse, Sanitise
from ._main import SanitiseAndParse

__all__ = ["Parse", "Sanitise"]
__all__ = ["SanitiseAndParse"]
555 changes: 58 additions & 497 deletions src/karmakaze/_main.py

Large diffs are not rendered by default.

File renamed without changes.
93 changes: 0 additions & 93 deletions tests/test_parse.py

This file was deleted.

88 changes: 0 additions & 88 deletions tests/test_sanitise.py

This file was deleted.

82 changes: 82 additions & 0 deletions tests/test_sanitise_and_parse.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
from types import SimpleNamespace
from typing import List

import karmakaze
from conftest import (
RAW_COMMENTS,
RAW_POST,
RAW_POSTS,
RAW_SUBREDDIT,
RAW_USER,
RAW_SUBREDDITS,
RAW_USERS,
RAW_WIKI_PAGE,
)

sanitise_and_parse = karmakaze.SanitiseAndParse()


def test_comments_sanitation_and_parsing():
comments = sanitise_and_parse.comments(RAW_COMMENTS[1])
assert isinstance(comments.children, List)

for comment in comments.children:
assert isinstance(comment, SimpleNamespace)
assert isinstance(comment.data.subreddit, str)
assert hasattr(comment.data, "ups")


def test_post_sanitation_and_parsing():
post = sanitise_and_parse.post(RAW_POST)
assert isinstance(post, SimpleNamespace)
assert isinstance(post.data.ups, int)
assert isinstance(post.data.upvote_ratio, (float, int))
assert isinstance(post.data.is_robot_indexable, bool)


def test_posts_sanitation_and_parsing():
posts = sanitise_and_parse.posts(RAW_POSTS).children
assert isinstance(posts, List)
for post in posts:
assert isinstance(post, SimpleNamespace)
assert isinstance(post.data.num_comments, int)
assert hasattr(post.data, "url")


def test_subreddit_sanitation_and_parsing():
subreddit = sanitise_and_parse.subreddit(RAW_SUBREDDIT)
assert isinstance(subreddit, SimpleNamespace)
assert isinstance(subreddit.data.active_user_count, int)
assert hasattr(subreddit.data, "display_name")


def test_subreddits_sanitation_and_parsing():
subreddits = sanitise_and_parse.subreddits(RAW_SUBREDDITS)
assert isinstance(subreddits.children, List)
for subreddit in subreddits.children:
assert isinstance(subreddit, SimpleNamespace)
assert isinstance(subreddit.data.subscribers, int)
assert hasattr(subreddit.data, "description")


def test_user_sanitation_and_parsing():
user = sanitise_and_parse.user(RAW_USER)
assert isinstance(user, SimpleNamespace)
assert isinstance(user.data.created, str)
assert hasattr(user.data, "comment_karma")


def test_users_sanitation_and_parsing():
users = sanitise_and_parse.users(RAW_USERS)
assert isinstance(users.children, List)
for user in users.children:
assert isinstance(user, SimpleNamespace)
assert isinstance(user.data.accept_followers, bool)
assert hasattr(user.data, "name")


def test_wiki_page_sanitation_and_parsing():
wiki_page = sanitise_and_parse.wiki_page(RAW_WIKI_PAGE)
assert isinstance(wiki_page, SimpleNamespace)
assert isinstance(wiki_page.data.revision_date, str)
assert hasattr(wiki_page.data, "revision_id")

0 comments on commit bcc93fc

Please sign in to comment.