Skip to content

Commit 0bb7481

Browse files
committed
CrowdTangleList
1 parent 745d9c2 commit 0bb7481

File tree

5 files changed

+11
-14
lines changed

5 files changed

+11
-14
lines changed

minet/cli/crowdtangle/lists.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@
77
import casanova
88

99
from minet.cli.crowdtangle.utils import with_crowdtangle_utilities
10-
from minet.crowdtangle.constants import CROWDTANGLE_LIST_CSV_HEADERS
10+
from minet.crowdtangle.types import CrowdTangleList
1111

1212

1313
@with_crowdtangle_utilities
1414
def action(cli_args, client):
15-
writer = casanova.writer(cli_args.output, fieldnames=CROWDTANGLE_LIST_CSV_HEADERS)
15+
writer = casanova.writer(cli_args.output, fieldnames=CrowdTangleList)
1616

1717
lists = client.lists()
1818

minet/crowdtangle/constants.py

-2
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,4 @@
165165
"%s_%s" % (post_type, substitute_key)
166166
)
167167

168-
CROWDTANGLE_LIST_CSV_HEADERS = ["id", "title", "type"]
169-
170168
CROWDTANGLE_DEFAULT_START_DATE = "2010"

minet/crowdtangle/formatters.py

-7
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
CROWDTANGLE_SUMMARY_CSV_HEADERS,
1414
CROWDTANGLE_LEADERBOARD_CSV_HEADERS,
1515
CROWDTANGLE_LEADERBOARD_CSV_HEADERS_WITH_BREAKDOWN,
16-
CROWDTANGLE_LIST_CSV_HEADERS,
1716
CROWDTANGLE_STATISTICS,
1817
CROWDTANGLE_FULL_STATISTICS,
1918
)
@@ -38,8 +37,6 @@
3837
boolean=["verified"],
3938
)
4039

41-
CrowdTangleList = namedrecord("CrowdTangleList", CROWDTANGLE_LIST_CSV_HEADERS)
42-
4340

4441
def map_key(key, target):
4542
return [item[key] for item in target]
@@ -141,7 +138,3 @@ def format_leaderboard(item, with_breakdown=False):
141138
return CrowdTangleLeaderboardWithBreakdown(*row)
142139

143140
return CrowdTangleLeaderboard(*row)
144-
145-
146-
def format_list(item):
147-
return CrowdTangleList(item["id"], item["title"], item["type"])

minet/crowdtangle/lists.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# Function used to retrieved lists from a given dashboard.
66
#
77
from minet.crowdtangle.exceptions import CrowdTangleMissingTokenError
8-
from minet.crowdtangle.formatters import format_list
8+
from minet.crowdtangle.types import CrowdTangleList
99

1010
URL_TEMPLATE = "https://api.crowdtangle.com/lists?token=%s"
1111

@@ -21,6 +21,6 @@ def crowdtangle_lists(request, token=None, raw=False):
2121
lists = data["lists"]
2222

2323
if not raw:
24-
return [format_list(l) for l in lists]
24+
return [CrowdTangleList.from_payload(l) for l in lists]
2525

2626
return lists

minet/crowdtangle/types.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -84,4 +84,10 @@ class CrowdTangleLeaderboardWithBreakdown(TabularRecord):
8484

8585
@dataclass
8686
class CrowdTangleList(TabularRecord):
87-
pass
87+
id: str
88+
title: str
89+
type: str
90+
91+
@classmethod
92+
def from_payload(cls, payload) -> "CrowdTangleList":
93+
return cls(payload["id"], payload["title"], payload["type"])

0 commit comments

Comments
 (0)