This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| def get_sorry_and_word_count(comment_list, apologies = ['sorry', 'apologies']): | |
| sorry_count = 0 | |
| word_count = 0 | |
| for comment in comment_list: | |
| words = comment.split(' ') | |
| word_count += int(len(words)) | |
| for word in words: | |
| for apology in apologies: | |
| sorry_count += word.lower().count(apology) | |
| return sorry_count, word_count |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| if __name__ == "__main__": | |
| client_id = 'your_client_id' | |
| client_secret = 'your_client_secret' | |
| reddit_agent = get_reddit_agent('custom name for app', client_id, client_secret) | |
| #list of canadian reddits to search | |
| canada_reddits = ['canada','alberta','britishcolumbia','Manitoba','NewBrunswickCanada', 'newfoundland', | |
| 'NovaScotia','nunavut','NWT','ontario','PEI', 'saskatchewan','Yukon'] | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import praw | |
| def get_subreddit_comments(reddit_agent, subreddit, comments_out = [], count = 100): | |
| try: | |
| sub = reddit_agent.get_subreddit(subreddit) | |
| comments_raw = sub.get_comments(sub, limit=count) | |
| comments_flat = praw.helpers.flatten_tree(comments_raw) | |
| for comment in comments_flat: | |
| try: | |
| if hasattr(comment, 'comments'): |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import praw | |
| import sys | |
| def get_subreddit_comments(reddit_agent, subreddit, comments_out = [], count = 100): | |
| try: | |
| sub = reddit_agent.get_subreddit(subreddit) | |
| comments_raw = sub.get_comments(sub, limit=count) | |
| comments_flat = praw.helpers.flatten_tree(comments_raw) | |
| for comment in comments_flat: | |
| try: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| def calculate_single_body_acceleration(bodies, body_index): | |
| G_const = 6.67408e-11 #m3 kg-1 s-2 | |
| acceleration = point(0,0,0) | |
| target_body = bodies[body_index] | |
| for index, external_body in enumerate(bodies): | |
| if index != body_index: | |
| r = (target_body.location.x - external_body.location.x)**2 + (target_body.location.y - external_body.location.y)**2 + (target_body.location.z - external_body.location.z)**2 | |
| r = math.sqrt(r) | |
| tmp = G_const * external_body.mass / r**3 | |
| acceleration.x += tmp * (external_body.location.x - target_body.location.x) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| def compute_velocity(bodies, time_step = 1): | |
| for body_index, target_body in enumerate(bodies): | |
| acceleration = calculate_single_body_acceleration(bodies, body_index) | |
| target_body.velocity.x += acceleration.x * time_step | |
| target_body.velocity.y += acceleration.y * time_step | |
| target_body.velocity.z += acceleration.z * time_step |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| def update_location(bodies, time_step = 1): | |
| for target_body in bodies: | |
| target_body.location.x += target_body.velocity.x * time_step | |
| target_body.location.y += target_body.velocity.y * time_step | |
| target_body.location.z += target_body.velocity.z * time_step |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| def run_simulation(bodies, names = None, time_step = 1, number_of_steps = 10000, report_freq = 100): | |
| #create output container for each body | |
| body_locations_hist = [] | |
| for current_body in bodies: | |
| body_locations_hist.append({"x":[], "y":[], "z":[], "name":current_body.name}) | |
| for i in range(1,number_of_steps): | |
| compute_gravity_step(bodies, time_step = 1000) | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| def plot_output(bodies, outfile = None): | |
| fig = plot.figure() | |
| colours = ['r','b','g','y','m','c'] | |
| ax = fig.add_subplot(1,1,1, projection='3d') | |
| max_range = 0 | |
| for current_body in bodies: | |
| max_dim = max(max(current_body["x"]),max(current_body["y"]),max(current_body["z"])) | |
| if max_dim > max_range: | |
| max_range = max_dim | |
| ax.plot(current_body["x"], current_body["y"], current_body["z"], c = random.choice(colours), label = current_body["name"]) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #planet data (location (m), mass (kg), velocity (m/s) | |
| sun = {"location":point(0,0,0), "mass":2e30, "velocity":point(0,0,0)} | |
| mercury = {"location":point(0,5.7e10,0), "mass":3.285e23, "velocity":point(47000,0,0)} | |
| venus = {"location":point(0,1.1e11,0), "mass":4.8e24, "velocity":point(35000,0,0)} | |
| earth = {"location":point(0,1.5e11,0), "mass":6e24, "velocity":point(30000,0,0)} | |
| mars = {"location":point(0,2.2e11,0), "mass":2.4e24, "velocity":point(24000,0,0)} | |
| jupiter = {"location":point(0,7.7e11,0), "mass":1e28, "velocity":point(13000,0,0)} | |
| saturn = {"location":point(0,1.4e12,0), "mass":5.7e26, "velocity":point(9000,0,0)} | |
| uranus = {"location":point(0,2.8e12,0), "mass":8.7e25, "velocity":point(6835,0,0)} | |
| neptune = {"location":point(0,4.5e12,0), "mass":1e26, "velocity":point(5477,0,0)} |