Repository: DocNow/twarc-csv (language: python)

Issue:
Add new fields for edited tweets
See https://github.com/DocNow/twarc/pull/657


Discussion / hints:
Temporary workaround is to init with:

```
DataFrameConverter(
        extra_input_columns='edit_history_tweet_ids,edit_controls.edits_remaining,edit_controls.editable_until,edit_controls.is_edit_eligible' 
)
Tip for anyone using the plugin until this is added is to do the following:

```twarc2 csv tweets.jsonl tweets.csv --extra-input-columns edit_history_tweet_ids,edit_controls.edits_remaining,edit_controls.editable_until,edit_controls.is_edit_eligible```

Fix patch:
diff --git a/dataframe_converter.py b/dataframe_converter.py
index 7c074cb..2544fe2 100644
--- a/dataframe_converter.py
+++ b/dataframe_converter.py
@@ -15,6 +15,10 @@
 referenced_tweets.replied_to.id
 referenced_tweets.retweeted.id
 referenced_tweets.quoted.id
+edit_history_tweet_ids
+edit_controls.edits_remaining
+edit_controls.editable_until
+edit_controls.is_edit_eligible
 author_id
 in_reply_to_user_id
 retweeted_user_id
@@ -80,6 +84,7 @@
 geo.name
 geo.place_id
 geo.place_type
+matching_rules
 __twarc.retrieved_at
 __twarc.url
 __twarc.version
diff --git a/setup.py b/setup.py
index 0c368c2..9a1b796 100644
--- a/setup.py
+++ b/setup.py
@@ -5,7 +5,7 @@
 
 setuptools.setup(
     name="twarc-csv",
-    version="0.5.2",
+    version="0.6.0",
     url="https://github.com/docnow/twarc-csv",
     author="Igor Brigadir",
     author_email="igor.brigadir@gmail.com",
@@ -15,7 +15,7 @@
     long_description_content_type="text/markdown",
     python_requires=">=3.3",
     install_requires=[
-        "twarc>=2.9.5",
+        "twarc>=2.12.0",
         "pandas>=1.2.5",
         "more-itertools>=8.7.0",
         "tqdm>=4.59.0",


Test patch:
diff --git a/test-data/cotweet.jsonl b/test-data/cotweet.jsonl
new file mode 100644
index 0000000..ba3bce5
--- /dev/null
+++ b/test-data/cotweet.jsonl
@@ -0,0 +1,1 @@
+{"data": [{"possibly_sensitive": false, "author_id": "18591618", "text": "who need they cotwussy tested", "edit_history_tweet_ids": ["1577318900085186562"], "created_at": "2022-10-04T15:25:05.000Z", "lang": "en", "source": "Twitter for iPhone", "edit_controls": {"edits_remaining": "5", "is_edit_eligible": false, "editable_until": "2022-10-04T15:55:05.000Z"}, "reply_settings": "everyone", "public_metrics": {"retweet_count": 1, "reply_count": 0, "like_count": 4, "quote_count": 0}, "id": "1577318900085186562", "conversation_id": "1577318900085186562"}], "includes": {"users": [{"public_metrics": {"followers_count": 6851, "following_count": 1079, "tweet_count": 76329, "listed_count": 340}, "id": "18591618", "created_at": "2009-01-04T01:05:02.000Z", "username": "staringispolite", "profile_image_url": "https://pbs.twimg.com/profile_images/1545267135630282752/EELMZ44V_normal.jpg", "protected": false, "pinned_tweet_id": "1501399992681918466", "verified": false, "entities": {"url": {"urls": [{"start": 0, "end": 23, "url": "https://t.co/s98sMuG5J9", "expanded_url": "https://jon.how/ard", "display_url": "jon.how/ard"}]}, "description": {"mentions": [{"start": 61, "end": 71, "username": "bigheadhq"}]}}, "location": "San Francisco, CA", "url": "https://t.co/s98sMuG5J9", "name": "Jonathan Howard", "description": "NuanceTwitter\u2122\ufe0f Conversation beats argument. Cofounder & CTO @bigheadhq. Former: CEO, growth tech lead, startup advisor, multi-time web2 founder"}], "tweets": [{"possibly_sensitive": false, "author_id": "18591618", "text": "who need they cotwussy tested", "edit_history_tweet_ids": ["1577318900085186562"], "created_at": "2022-10-04T15:25:05.000Z", "lang": "en", "source": "Twitter for iPhone", "edit_controls": {"edits_remaining": "5", "is_edit_eligible": false, "editable_until": "2022-10-04T15:55:05.000Z"}, "reply_settings": "everyone", "public_metrics": {"retweet_count": 1, "reply_count": 0, "like_count": 4, "quote_count": 0}, "id": "1577318900085186562", "conversation_id": "1577318900085186562"}]}, "__twarc": {"url": "https://api.twitter.com/2/tweets?expansions=author_id%2Cin_reply_to_user_id%2Creferenced_tweets.id%2Creferenced_tweets.id.author_id%2Centities.mentions.username%2Cattachments.poll_ids%2Cattachments.media_keys%2Cgeo.place_id%2Cedit_history_tweet_ids&tweet.fields=attachments%2Cauthor_id%2Ccontext_annotations%2Cconversation_id%2Ccreated_at%2Centities%2Cgeo%2Cid%2Cin_reply_to_user_id%2Clang%2Cpublic_metrics%2Ctext%2Cpossibly_sensitive%2Creferenced_tweets%2Creply_settings%2Csource%2Cwithheld%2Cedit_controls&user.fields=created_at%2Cdescription%2Centities%2Cid%2Clocation%2Cname%2Cpinned_tweet_id%2Cprofile_image_url%2Cprotected%2Cpublic_metrics%2Curl%2Cusername%2Cverified%2Cwithheld&media.fields=alt_text%2Cduration_ms%2Cheight%2Cmedia_key%2Cpreview_image_url%2Ctype%2Curl%2Cwidth%2Cpublic_metrics&poll.fields=duration_minutes%2Cend_datetime%2Cid%2Coptions%2Cvoting_status&place.fields=contained_within%2Ccountry%2Ccountry_code%2Cfull_name%2Cgeo%2Cid%2Cname%2Cplace_type&ids=1577318900085186562", "version": "2.12.0", "retrieved_at": "2022-10-04T15:27:59+00:00"}}
diff --git a/test-data/edited.jsonl b/test-data/edited.jsonl
new file mode 100644
index 0000000..5e7d3dc
--- /dev/null
+++ b/test-data/edited.jsonl
@@ -0,0 +1,1 @@
+{"data": [{"edit_controls": {"edits_remaining": "4", "is_edit_eligible": true, "editable_until": "2022-10-03T18:27:01.000Z"}, "author_id": "337119125", "conversation_id": "1576994789110992896", "possibly_sensitive": false, "public_metrics": {"retweet_count": 2, "reply_count": 12, "like_count": 27, "quote_count": 2}, "entities": {"urls": [{"start": 7, "end": 30, "url": "https://t.co/rnwEIoNuqd", "expanded_url": "https://twitter.com/i/web/status/1576994789110992896", "display_url": "twitter.com/i/web/status/1\u2026"}]}, "edit_history_tweet_ids": ["1576994746135764992", "1576994789110992896"], "id": "1576994789110992896", "text": "hey :) https://t.co/rnwEIoNuqd", "source": "Twitter Web App", "lang": "qst", "created_at": "2022-10-03T17:57:11.000Z", "reply_settings": "everyone"}], "includes": {"users": [{"entities": {"url": {"urls": [{"start": 0, "end": 23, "url": "https://t.co/kGovL0AEPv", "expanded_url": "https://instagram.com/wongmjane", "display_url": "instagram.com/wongmjane"}]}}, "protected": false, "public_metrics": {"followers_count": 138097, "following_count": 1871, "tweet_count": 32554, "listed_count": 1874}, "description": "the real hidden features are the friends we made along the way\uff0efrontend engineer\uff0eforbes 30 under 30 \ud83d\udc69\ud83c\udffb\u200d\ud83d\udcbb", "pinned_tweet_id": "1550167642308153344", "username": "wongmjane", "id": "337119125", "created_at": "2011-07-17T13:48:53.000Z", "verified": true, "profile_image_url": "https://pbs.twimg.com/profile_images/1537723907557720064/yZVHXu3C_normal.jpg", "url": "https://t.co/kGovL0AEPv", "name": "Jane Manchun Wong"}], "tweets": [{"edit_controls": {"edits_remaining": "4", "is_edit_eligible": true, "editable_until": "2022-10-03T18:27:01.000Z"}, "author_id": "337119125", "conversation_id": "1576994746135764992", "possibly_sensitive": false, "public_metrics": {"retweet_count": 0, "reply_count": 0, "like_count": 0, "quote_count": 0}, "entities": {"urls": [{"start": 29, "end": 52, "url": "https://t.co/glJ0r9uh9F", "expanded_url": "https://twitter.com/i/web/status/1576994746135764992", "display_url": "twitter.com/i/web/status/1\u2026"}, {"start": 53, "end": 76, "url": "https://t.co/4E9OBHOATs", "expanded_url": "https://twitter.com/wongmjane/status/1576994746135764992/photo/1", "display_url": "pic.twitter.com/4E9OBHOATs", "media_key": "3_1576994475507077121"}]}, "edit_history_tweet_ids": ["1576994746135764992", "1576994789110992896"], "id": "1576994746135764992", "text": "i miss y\u2019all so much haha,,, https://t.co/glJ0r9uh9F https://t.co/4E9OBHOATs", "source": "Twitter Web App", "lang": "en", "created_at": "2022-10-03T17:57:01.000Z", "reply_settings": "everyone", "attachments": {"media_keys": ["3_1576994475507077121"]}}, {"edit_controls": {"edits_remaining": "4", "is_edit_eligible": true, "editable_until": "2022-10-03T18:27:01.000Z"}, "author_id": "337119125", "conversation_id": "1576994789110992896", "possibly_sensitive": false, "public_metrics": {"retweet_count": 2, "reply_count": 12, "like_count": 27, "quote_count": 2}, "entities": {"urls": [{"start": 7, "end": 30, "url": "https://t.co/rnwEIoNuqd", "expanded_url": "https://twitter.com/i/web/status/1576994789110992896", "display_url": "twitter.com/i/web/status/1\u2026"}]}, "edit_history_tweet_ids": ["1576994746135764992", "1576994789110992896"], "id": "1576994789110992896", "text": "hey :) https://t.co/rnwEIoNuqd", "source": "Twitter Web App", "lang": "qst", "created_at": "2022-10-03T17:57:11.000Z", "reply_settings": "everyone"}]}, "__twarc": {"url": "https://api.twitter.com/2/tweets?expansions=author_id%2Cin_reply_to_user_id%2Creferenced_tweets.id%2Creferenced_tweets.id.author_id%2Centities.mentions.username%2Cattachments.poll_ids%2Cattachments.media_keys%2Cgeo.place_id%2Cedit_history_tweet_ids&tweet.fields=attachments%2Cauthor_id%2Ccontext_annotations%2Cconversation_id%2Ccreated_at%2Centities%2Cgeo%2Cid%2Cin_reply_to_user_id%2Clang%2Cpublic_metrics%2Ctext%2Cpossibly_sensitive%2Creferenced_tweets%2Creply_settings%2Csource%2Cwithheld%2Cedit_controls&user.fields=created_at%2Cdescription%2Centities%2Cid%2Clocation%2Cname%2Cpinned_tweet_id%2Cprofile_image_url%2Cprotected%2Cpublic_metrics%2Curl%2Cusername%2Cverified%2Cwithheld&media.fields=alt_text%2Cduration_ms%2Cheight%2Cmedia_key%2Cpreview_image_url%2Ctype%2Curl%2Cwidth%2Cpublic_metrics&poll.fields=duration_minutes%2Cend_datetime%2Cid%2Coptions%2Cvoting_status&place.fields=contained_within%2Ccountry%2Ccountry_code%2Cfull_name%2Cgeo%2Cid%2Cname%2Cplace_type&ids=1576994789110992896", "version": "2.12.0", "retrieved_at": "2022-10-03T18:00:12+00:00"}}
diff --git a/test-data/edited_after.jsonl b/test-data/edited_after.jsonl
new file mode 100644
index 0000000..d5f763c
--- /dev/null
+++ b/test-data/edited_after.jsonl
@@ -0,0 +1,1 @@
+{"data": [{"created_at": "2022-10-03T17:57:11.000Z", "text": "hey :) https://t.co/rnwEIoNuqd", "public_metrics": {"retweet_count": 3, "reply_count": 14, "like_count": 32, "quote_count": 2}, "edit_history_tweet_ids": ["1576994746135764992", "1576994789110992896"], "id": "1576994789110992896", "author_id": "337119125", "conversation_id": "1576994789110992896", "lang": "qst", "entities": {"urls": [{"start": 7, "end": 30, "url": "https://t.co/rnwEIoNuqd", "expanded_url": "https://twitter.com/i/web/status/1576994789110992896", "display_url": "twitter.com/i/web/status/1\u2026"}]}, "reply_settings": "everyone", "edit_controls": {"edits_remaining": "4", "is_edit_eligible": true, "editable_until": "2022-10-03T18:27:01.000Z"}, "possibly_sensitive": false, "source": "Twitter Web App"}], "includes": {"users": [{"id": "337119125", "name": "Jane Manchun Wong", "entities": {"url": {"urls": [{"start": 0, "end": 23, "url": "https://t.co/kGovL0AEPv", "expanded_url": "https://instagram.com/wongmjane", "display_url": "instagram.com/wongmjane"}]}}, "pinned_tweet_id": "1550167642308153344", "username": "wongmjane", "url": "https://t.co/kGovL0AEPv", "created_at": "2011-07-17T13:48:53.000Z", "profile_image_url": "https://pbs.twimg.com/profile_images/1537723907557720064/yZVHXu3C_normal.jpg", "description": "the real hidden features are the friends we made along the way\uff0efrontend engineer\uff0eforbes 30 under 30 \ud83d\udc69\ud83c\udffb\u200d\ud83d\udcbb", "verified": true, "public_metrics": {"followers_count": 138097, "following_count": 1871, "tweet_count": 32554, "listed_count": 1874}, "protected": false}], "tweets": [{"attachments": {"media_keys": ["3_1576994475507077121"]}, "created_at": "2022-10-03T17:57:01.000Z", "text": "i miss y\u2019all so much haha,,, https://t.co/glJ0r9uh9F https://t.co/4E9OBHOATs", "public_metrics": {"retweet_count": 0, "reply_count": 0, "like_count": 0, "quote_count": 1}, "edit_history_tweet_ids": ["1576994746135764992", "1576994789110992896"], "id": "1576994746135764992", "author_id": "337119125", "conversation_id": "1576994746135764992", "lang": "en", "entities": {"urls": [{"start": 29, "end": 52, "url": "https://t.co/glJ0r9uh9F", "expanded_url": "https://twitter.com/i/web/status/1576994746135764992", "display_url": "twitter.com/i/web/status/1\u2026"}, {"start": 53, "end": 76, "url": "https://t.co/4E9OBHOATs", "expanded_url": "https://twitter.com/wongmjane/status/1576994746135764992/photo/1", "display_url": "pic.twitter.com/4E9OBHOATs", "media_key": "3_1576994475507077121"}]}, "reply_settings": "everyone", "edit_controls": {"edits_remaining": "4", "is_edit_eligible": true, "editable_until": "2022-10-03T18:27:01.000Z"}, "possibly_sensitive": false, "source": "Twitter Web App"}, {"created_at": "2022-10-03T17:57:11.000Z", "text": "hey :) https://t.co/rnwEIoNuqd", "public_metrics": {"retweet_count": 3, "reply_count": 14, "like_count": 32, "quote_count": 2}, "edit_history_tweet_ids": ["1576994746135764992", "1576994789110992896"], "id": "1576994789110992896", "author_id": "337119125", "conversation_id": "1576994789110992896", "lang": "qst", "entities": {"urls": [{"start": 7, "end": 30, "url": "https://t.co/rnwEIoNuqd", "expanded_url": "https://twitter.com/i/web/status/1576994789110992896", "display_url": "twitter.com/i/web/status/1\u2026"}]}, "reply_settings": "everyone", "edit_controls": {"edits_remaining": "4", "is_edit_eligible": true, "editable_until": "2022-10-03T18:27:01.000Z"}, "possibly_sensitive": false, "source": "Twitter Web App"}]}, "__twarc": {"url": "https://api.twitter.com/2/tweets?expansions=author_id%2Cin_reply_to_user_id%2Creferenced_tweets.id%2Creferenced_tweets.id.author_id%2Centities.mentions.username%2Cattachments.poll_ids%2Cattachments.media_keys%2Cgeo.place_id%2Cedit_history_tweet_ids&tweet.fields=attachments%2Cauthor_id%2Ccontext_annotations%2Cconversation_id%2Ccreated_at%2Centities%2Cgeo%2Cid%2Cin_reply_to_user_id%2Clang%2Cpublic_metrics%2Ctext%2Cpossibly_sensitive%2Creferenced_tweets%2Creply_settings%2Csource%2Cwithheld%2Cedit_controls&user.fields=created_at%2Cdescription%2Centities%2Cid%2Clocation%2Cname%2Cpinned_tweet_id%2Cprofile_image_url%2Cprotected%2Cpublic_metrics%2Curl%2Cusername%2Cverified%2Cwithheld&media.fields=alt_text%2Cduration_ms%2Cheight%2Cmedia_key%2Cpreview_image_url%2Ctype%2Curl%2Cwidth%2Cpublic_metrics&poll.fields=duration_minutes%2Cend_datetime%2Cid%2Coptions%2Cvoting_status&place.fields=contained_within%2Ccountry%2Ccountry_code%2Cfull_name%2Cgeo%2Cid%2Cname%2Cplace_type&ids=1576994789110992896", "version": "2.12.0", "retrieved_at": "2022-10-03T18:01:17+00:00"}}
diff --git a/test-data/edited_before.jsonl b/test-data/edited_before.jsonl
new file mode 100644
index 0000000..57bbe33
--- /dev/null
+++ b/test-data/edited_before.jsonl
@@ -0,0 +1,1 @@
+{"data": [{"edit_history_tweet_ids": ["1576994746135764992", "1576994789110992896"], "source": "Twitter Web App", "edit_controls": {"edits_remaining": "4", "is_edit_eligible": true, "editable_until": "2022-10-03T18:27:01.000Z"}, "text": "i miss y\u2019all so much haha,,, https://t.co/glJ0r9uh9F https://t.co/4E9OBHOATs", "possibly_sensitive": false, "lang": "en", "public_metrics": {"retweet_count": 0, "reply_count": 0, "like_count": 0, "quote_count": 1}, "created_at": "2022-10-03T17:57:01.000Z", "attachments": {"media_keys": ["3_1576994475507077121"]}, "entities": {"urls": [{"start": 29, "end": 52, "url": "https://t.co/glJ0r9uh9F", "expanded_url": "https://twitter.com/i/web/status/1576994746135764992", "display_url": "twitter.com/i/web/status/1\u2026"}, {"start": 53, "end": 76, "url": "https://t.co/4E9OBHOATs", "expanded_url": "https://twitter.com/wongmjane/status/1576994746135764992/photo/1", "display_url": "pic.twitter.com/4E9OBHOATs", "media_key": "3_1576994475507077121"}]}, "conversation_id": "1576994746135764992", "reply_settings": "everyone", "id": "1576994746135764992", "author_id": "337119125"}], "includes": {"media": [{"height": 2048, "alt_text": "selfie of me with memoji", "media_key": "3_1576994475507077121", "width": 1536, "url": "https://pbs.twimg.com/media/FeKcHsVaUAEYpU_.jpg", "type": "photo"}], "users": [{"description": "the real hidden features are the friends we made along the way\uff0efrontend engineer\uff0eforbes 30 under 30 \ud83d\udc69\ud83c\udffb\u200d\ud83d\udcbb", "entities": {"url": {"urls": [{"start": 0, "end": 23, "url": "https://t.co/kGovL0AEPv", "expanded_url": "https://instagram.com/wongmjane", "display_url": "instagram.com/wongmjane"}]}}, "name": "Jane Manchun Wong", "created_at": "2011-07-17T13:48:53.000Z", "verified": true, "id": "337119125", "pinned_tweet_id": "1550167642308153344", "protected": false, "username": "wongmjane", "profile_image_url": "https://pbs.twimg.com/profile_images/1537723907557720064/yZVHXu3C_normal.jpg", "url": "https://t.co/kGovL0AEPv", "public_metrics": {"followers_count": 138097, "following_count": 1871, "tweet_count": 32554, "listed_count": 1874}}], "tweets": [{"edit_history_tweet_ids": ["1576994746135764992", "1576994789110992896"], "source": "Twitter Web App", "edit_controls": {"edits_remaining": "4", "is_edit_eligible": true, "editable_until": "2022-10-03T18:27:01.000Z"}, "text": "i miss y\u2019all so much haha,,, https://t.co/glJ0r9uh9F https://t.co/4E9OBHOATs", "possibly_sensitive": false, "lang": "en", "public_metrics": {"retweet_count": 0, "reply_count": 0, "like_count": 0, "quote_count": 1}, "created_at": "2022-10-03T17:57:01.000Z", "attachments": {"media_keys": ["3_1576994475507077121"]}, "entities": {"urls": [{"start": 29, "end": 52, "url": "https://t.co/glJ0r9uh9F", "expanded_url": "https://twitter.com/i/web/status/1576994746135764992", "display_url": "twitter.com/i/web/status/1\u2026"}, {"start": 53, "end": 76, "url": "https://t.co/4E9OBHOATs", "expanded_url": "https://twitter.com/wongmjane/status/1576994746135764992/photo/1", "display_url": "pic.twitter.com/4E9OBHOATs", "media_key": "3_1576994475507077121"}]}, "conversation_id": "1576994746135764992", "reply_settings": "everyone", "id": "1576994746135764992", "author_id": "337119125"}, {"edit_history_tweet_ids": ["1576994746135764992", "1576994789110992896"], "source": "Twitter Web App", "edit_controls": {"edits_remaining": "4", "is_edit_eligible": true, "editable_until": "2022-10-03T18:27:01.000Z"}, "text": "hey :) https://t.co/rnwEIoNuqd", "possibly_sensitive": false, "lang": "qst", "public_metrics": {"retweet_count": 3, "reply_count": 14, "like_count": 32, "quote_count": 2}, "created_at": "2022-10-03T17:57:11.000Z", "entities": {"urls": [{"start": 7, "end": 30, "url": "https://t.co/rnwEIoNuqd", "expanded_url": "https://twitter.com/i/web/status/1576994789110992896", "display_url": "twitter.com/i/web/status/1\u2026"}]}, "conversation_id": "1576994789110992896", "reply_settings": "everyone", "id": "1576994789110992896", "author_id": "337119125"}]}, "__twarc": {"url": "https://api.twitter.com/2/tweets?expansions=author_id%2Cin_reply_to_user_id%2Creferenced_tweets.id%2Creferenced_tweets.id.author_id%2Centities.mentions.username%2Cattachments.poll_ids%2Cattachments.media_keys%2Cgeo.place_id%2Cedit_history_tweet_ids&tweet.fields=attachments%2Cauthor_id%2Ccontext_annotations%2Cconversation_id%2Ccreated_at%2Centities%2Cgeo%2Cid%2Cin_reply_to_user_id%2Clang%2Cpublic_metrics%2Ctext%2Cpossibly_sensitive%2Creferenced_tweets%2Creply_settings%2Csource%2Cwithheld%2Cedit_controls&user.fields=created_at%2Cdescription%2Centities%2Cid%2Clocation%2Cname%2Cpinned_tweet_id%2Cprofile_image_url%2Cprotected%2Cpublic_metrics%2Curl%2Cusername%2Cverified%2Cwithheld&media.fields=alt_text%2Cduration_ms%2Cheight%2Cmedia_key%2Cpreview_image_url%2Ctype%2Curl%2Cwidth%2Cpublic_metrics&poll.fields=duration_minutes%2Cend_datetime%2Cid%2Coptions%2Cvoting_status&place.fields=contained_within%2Ccountry%2Ccountry_code%2Cfull_name%2Cgeo%2Cid%2Cname%2Cplace_type&ids=1576994746135764992", "version": "2.12.0", "retrieved_at": "2022-10-03T18:00:57+00:00"}}
diff --git a/test-data/quoted_edit.jsonl b/test-data/quoted_edit.jsonl
new file mode 100644
index 0000000..427b750
--- /dev/null
+++ b/test-data/quoted_edit.jsonl
@@ -0,0 +1,1 @@
+{"data": [{"created_at": "2022-10-03T18:00:23.000Z", "in_reply_to_user_id": "337119125", "text": "@wongmjane Test \nhttps://t.co/rBFwqjVr6B", "public_metrics": {"retweet_count": 0, "reply_count": 1, "like_count": 1, "quote_count": 0}, "edit_history_tweet_ids": ["1576995594388000768"], "id": "1576995594388000768", "author_id": "1494167419413094401", "conversation_id": "1576994789110992896", "lang": "en", "entities": {"mentions": [{"start": 0, "end": 10, "username": "wongmjane", "id": "337119125"}], "urls": [{"start": 17, "end": 40, "url": "https://t.co/rBFwqjVr6B", "expanded_url": "https://twitter.com/wongmjane/status/1576994746135764992", "display_url": "twitter.com/wongmjane/stat\u2026"}]}, "reply_settings": "everyone", "edit_controls": {"edits_remaining": "5", "is_edit_eligible": false, "editable_until": "2022-10-03T18:30:23.000Z"}, "possibly_sensitive": false, "referenced_tweets": [{"type": "quoted", "id": "1576994746135764992"}, {"type": "replied_to", "id": "1576994789110992896"}], "source": "Twitter for Android"}], "includes": {"users": [{"id": "1494167419413094401", "name": "david", "username": "dappdavid99", "url": "", "created_at": "2022-02-17T04:30:55.000Z", "profile_image_url": "https://pbs.twimg.com/profile_images/1574389562859606016/rLqM39gL_normal.jpg", "description": "", "verified": false, "public_metrics": {"followers_count": 107, "following_count": 1387, "tweet_count": 27, "listed_count": 2}, "protected": false}, {"id": "337119125", "name": "Jane Manchun Wong", "entities": {"url": {"urls": [{"start": 0, "end": 23, "url": "https://t.co/kGovL0AEPv", "expanded_url": "https://instagram.com/wongmjane", "display_url": "instagram.com/wongmjane"}]}}, "pinned_tweet_id": "1550167642308153344", "username": "wongmjane", "url": "https://t.co/kGovL0AEPv", "created_at": "2011-07-17T13:48:53.000Z", "profile_image_url": "https://pbs.twimg.com/profile_images/1537723907557720064/yZVHXu3C_normal.jpg", "description": "the real hidden features are the friends we made along the way\uff0efrontend engineer\uff0eforbes 30 under 30 \ud83d\udc69\ud83c\udffb\u200d\ud83d\udcbb", "verified": true, "public_metrics": {"followers_count": 138098, "following_count": 1871, "tweet_count": 32554, "listed_count": 1874}, "protected": false}], "tweets": [{"created_at": "2022-10-03T18:00:23.000Z", "in_reply_to_user_id": "337119125", "text": "@wongmjane Test \nhttps://t.co/rBFwqjVr6B", "public_metrics": {"retweet_count": 0, "reply_count": 1, "like_count": 1, "quote_count": 0}, "edit_history_tweet_ids": ["1576995594388000768"], "id": "1576995594388000768", "author_id": "1494167419413094401", "conversation_id": "1576994789110992896", "lang": "en", "entities": {"mentions": [{"start": 0, "end": 10, "username": "wongmjane", "id": "337119125"}], "urls": [{"start": 17, "end": 40, "url": "https://t.co/rBFwqjVr6B", "expanded_url": "https://twitter.com/wongmjane/status/1576994746135764992", "display_url": "twitter.com/wongmjane/stat\u2026"}]}, "reply_settings": "everyone", "edit_controls": {"edits_remaining": "5", "is_edit_eligible": false, "editable_until": "2022-10-03T18:30:23.000Z"}, "possibly_sensitive": false, "referenced_tweets": [{"type": "quoted", "id": "1576994746135764992"}, {"type": "replied_to", "id": "1576994789110992896"}], "source": "Twitter for Android"}, {"attachments": {"media_keys": ["3_1576994475507077121"]}, "created_at": "2022-10-03T17:57:01.000Z", "text": "i miss y\u2019all so much haha,,, https://t.co/glJ0r9uh9F https://t.co/4E9OBHOATs", "public_metrics": {"retweet_count": 0, "reply_count": 0, "like_count": 0, "quote_count": 1}, "edit_history_tweet_ids": ["1576994746135764992", "1576994789110992896"], "id": "1576994746135764992", "author_id": "337119125", "conversation_id": "1576994746135764992", "lang": "en", "entities": {"urls": [{"start": 29, "end": 52, "url": "https://t.co/glJ0r9uh9F", "expanded_url": "https://twitter.com/i/web/status/1576994746135764992", "display_url": "twitter.com/i/web/status/1\u2026"}, {"start": 53, "end": 76, "url": "https://t.co/4E9OBHOATs", "expanded_url": "https://twitter.com/wongmjane/status/1576994746135764992/photo/1", "display_url": "pic.twitter.com/4E9OBHOATs", "media_key": "3_1576994475507077121"}]}, "reply_settings": "everyone", "edit_controls": {"edits_remaining": "4", "is_edit_eligible": true, "editable_until": "2022-10-03T18:27:01.000Z"}, "possibly_sensitive": false, "source": "Twitter Web App"}, {"created_at": "2022-10-03T17:57:11.000Z", "text": "hey :) https://t.co/rnwEIoNuqd", "public_metrics": {"retweet_count": 3, "reply_count": 14, "like_count": 39, "quote_count": 4}, "edit_history_tweet_ids": ["1576994746135764992", "1576994789110992896"], "id": "1576994789110992896", "author_id": "337119125", "conversation_id": "1576994789110992896", "lang": "qst", "entities": {"urls": [{"start": 7, "end": 30, "url": "https://t.co/rnwEIoNuqd", "expanded_url": "https://twitter.com/i/web/status/1576994789110992896", "display_url": "twitter.com/i/web/status/1\u2026"}]}, "reply_settings": "everyone", "edit_controls": {"edits_remaining": "4", "is_edit_eligible": true, "editable_until": "2022-10-03T18:27:01.000Z"}, "possibly_sensitive": false, "source": "Twitter Web App"}]}, "__twarc": {"url": "https://api.twitter.com/2/tweets?expansions=author_id%2Cin_reply_to_user_id%2Creferenced_tweets.id%2Creferenced_tweets.id.author_id%2Centities.mentions.username%2Cattachments.poll_ids%2Cattachments.media_keys%2Cgeo.place_id%2Cedit_history_tweet_ids&tweet.fields=attachments%2Cauthor_id%2Ccontext_annotations%2Cconversation_id%2Ccreated_at%2Centities%2Cgeo%2Cid%2Cin_reply_to_user_id%2Clang%2Cpublic_metrics%2Ctext%2Cpossibly_sensitive%2Creferenced_tweets%2Creply_settings%2Csource%2Cwithheld%2Cedit_controls&user.fields=created_at%2Cdescription%2Centities%2Cid%2Clocation%2Cname%2Cpinned_tweet_id%2Cprofile_image_url%2Cprotected%2Cpublic_metrics%2Curl%2Cusername%2Cverified%2Cwithheld&media.fields=alt_text%2Cduration_ms%2Cheight%2Cmedia_key%2Cpreview_image_url%2Ctype%2Curl%2Cwidth%2Cpublic_metrics&poll.fields=duration_minutes%2Cend_datetime%2Cid%2Coptions%2Cvoting_status&place.fields=contained_within%2Ccountry%2Ccountry_code%2Cfull_name%2Cgeo%2Cid%2Cname%2Cplace_type&ids=1576995594388000768", "version": "2.12.0", "retrieved_at": "2022-10-03T18:02:28+00:00"}}
diff --git a/test_twarc_csv.py b/test_twarc_csv.py
index d21ab99..013632f 100644
--- a/test_twarc_csv.py
+++ b/test_twarc_csv.py
@@ -99,3 +99,23 @@ def test_lists():
 
 def test_geo():
     _process_file("geo_tweets", 2, extra=" --input-data-type tweets")
+
+
+def test_cotweet():
+    _process_file("cotweet")
+
+
+def test_edited():
+    _process_file("edited")
+
+
+def test_edited_after():
+    _process_file("edited_after")
+
+
+def test_edited_before():
+    _process_file("edited_before")
+
+
+def test_quoted_edit():
+    _process_file("quoted_edit")