[Solved] How would you debug this script without creating many posts?

I won’t know if this script works until I run it and see the errors but the comments won’t start to generate until after all the posts so I can’t debug that part until I’ve already created too much content.

<pre style="background-color:#ffffff;">
<span style="font-weight:bold;color:#a71d5d;">import </span><span style="color:#323232;">sqlite3
</span><span style="font-weight:bold;color:#a71d5d;">import </span><span style="color:#323232;">requests
</span><span style="font-weight:bold;color:#a71d5d;">from </span><span style="color:#323232;">pythorhead </span><span style="font-weight:bold;color:#a71d5d;">import </span><span style="color:#323232;">Lemmy
</span><span style="font-weight:bold;color:#a71d5d;">import </span><span style="color:#323232;">schedule
</span><span style="font-weight:bold;color:#a71d5d;">import </span><span style="color:#323232;">time
</span><span style="font-weight:bold;color:#a71d5d;">import </span><span style="color:#323232;">logging
</span><span style="font-weight:bold;color:#a71d5d;">from </span><span style="color:#323232;">config </span><span style="font-weight:bold;color:#a71d5d;">import </span><span style="color:#0086b3;">*
</span><span style="color:#323232;">
</span><span style="color:#323232;">logging.basicConfig(
</span><span style="color:#323232;">    level</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#323232;">logging.</span><span style="color:#0086b3;">INFO</span><span style="color:#323232;">,
</span><span style="color:#323232;">    format</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#183691;">"</span><span style="color:#0086b3;">%(</span><span style="color:#323232;">asctime</span><span style="color:#0086b3;">)s %(</span><span style="color:#323232;">levelname</span><span style="color:#0086b3;">)s %(</span><span style="color:#323232;">name</span><span style="color:#0086b3;">)s %(</span><span style="color:#323232;">message</span><span style="color:#0086b3;">)s</span><span style="color:#183691;">"</span><span style="color:#323232;">,
</span><span style="color:#323232;">    handlers</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#323232;">[logging.FileHandler(</span><span style="color:#183691;">"debug.log"</span><span style="color:#323232;">), logging.StreamHandler()],
</span><span style="color:#323232;">)
</span><span style="color:#323232;">
</span><span style="color:#323232;">
</span><span style="font-weight:bold;color:#a71d5d;">def </span><span style="font-weight:bold;color:#323232;">initialize_database</span><span style="color:#323232;">():
</span><span style="color:#323232;">    conn </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">sqlite3.connect(DB_FILE)
</span><span style="color:#323232;">    cursor </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">conn.cursor()
</span><span style="color:#323232;">    cursor.execute(</span><span style="color:#183691;">"""
</span><span style="color:#183691;">        </span><span style="font-weight:bold;color:#a71d5d;">CREATE TABLE </span><span style="font-weight:bold;color:#323232;">IF</span><span style="color:#183691;"> NOT EXISTS posts (
</span><span style="color:#183691;">            github_url </span><span style="font-weight:bold;color:#a71d5d;">TEXT PRIMARY KEY</span><span style="color:#183691;">,
</span><span style="color:#183691;">            lemmy_post_id </span><span style="font-weight:bold;color:#a71d5d;">INTEGER</span><span style="color:#183691;">,
</span><span style="color:#183691;">            lemmy_post_name </span><span style="font-weight:bold;color:#a71d5d;">TEXT</span><span style="color:#183691;">,
</span><span style="color:#183691;">            lemmy_post_body </span><span style="font-weight:bold;color:#a71d5d;">TEXT
</span><span style="color:#183691;">        )
</span><span style="color:#183691;">    """</span><span style="color:#323232;">)
</span><span style="color:#323232;">    cursor.execute(</span><span style="color:#183691;">"""
</span><span style="color:#183691;">        </span><span style="font-weight:bold;color:#a71d5d;">CREATE TABLE </span><span style="font-weight:bold;color:#323232;">IF</span><span style="color:#183691;"> NOT EXISTS comments (
</span><span style="color:#183691;">            github_comment_id </span><span style="font-weight:bold;color:#a71d5d;">INTEGER PRIMARY KEY</span><span style="color:#183691;">,
</span><span style="color:#183691;">            lemmy_comment_id </span><span style="font-weight:bold;color:#a71d5d;">INTEGER</span><span style="color:#183691;">,
</span><span style="color:#183691;">            comment_user </span><span style="font-weight:bold;color:#a71d5d;">TEXT</span><span style="color:#183691;">,
</span><span style="color:#183691;">            comment_body </span><span style="font-weight:bold;color:#a71d5d;">TEXT
</span><span style="color:#183691;">        )
</span><span style="color:#183691;">    """</span><span style="color:#323232;">)
</span><span style="color:#323232;">    conn.commit()
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">return </span><span style="color:#323232;">conn
</span><span style="color:#323232;">
</span><span style="color:#323232;">
</span><span style="font-weight:bold;color:#a71d5d;">def </span><span style="font-weight:bold;color:#323232;">initialize_lemmy_instance</span><span style="color:#323232;">():
</span><span style="color:#323232;">    lemmy </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">Lemmy(</span><span style="color:#0086b3;">LEMMY_INSTANCE_URL</span><span style="color:#323232;">)
</span><span style="color:#323232;">    lemmy.log_in(</span><span style="color:#0086b3;">LEMMY_USERNAME</span><span style="color:#323232;">, </span><span style="color:#0086b3;">LEMMY_PASSWORD</span><span style="color:#323232;">)
</span><span style="color:#323232;">    logging.info(</span><span style="color:#183691;">"Initialized Lemmy instance"</span><span style="color:#323232;">)
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">return </span><span style="color:#323232;">lemmy
</span><span style="color:#323232;">
</span><span style="color:#323232;">
</span><span style="font-weight:bold;color:#a71d5d;">def </span><span style="font-weight:bold;color:#323232;">discover_community</span><span style="color:#323232;">(lemmy, community_name):
</span><span style="color:#323232;">    community_id </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">lemmy.discover_community(community_name)
</span><span style="color:#323232;">    logging.info(</span><span style="font-weight:bold;color:#a71d5d;">f</span><span style="color:#183691;">"Discovered community </span><span style="color:#323232;">{community_name}</span><span style="color:#183691;"> with ID </span><span style="color:#323232;">{community_id}</span><span style="color:#183691;">"</span><span style="color:#323232;">)
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">return </span><span style="color:#323232;">community_id
</span><span style="color:#323232;">
</span><span style="color:#323232;">
</span><span style="font-weight:bold;color:#a71d5d;">def </span><span style="font-weight:bold;color:#323232;">fetch_github_issues</span><span style="color:#323232;">(repo):
</span><span style="color:#323232;">    url </span><span style="font-weight:bold;color:#a71d5d;">= f</span><span style="color:#183691;">"</span><span style="color:#323232;">{</span><span style="color:#0086b3;">GITHUB_API_BASE</span><span style="color:#323232;">}</span><span style="color:#183691;">/repos/</span><span style="color:#323232;">{repo}</span><span style="color:#183691;">/issues"
</span><span style="color:#323232;">    headers </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">{</span><span style="color:#183691;">"Accept"</span><span style="color:#323232;">: </span><span style="color:#183691;">"application/vnd.github+json"</span><span style="color:#323232;">}
</span><span style="color:#323232;">    response </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">requests.get(url, headers</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#323232;">headers)
</span><span style="color:#323232;">    logging.info(</span><span style="font-weight:bold;color:#a71d5d;">f</span><span style="color:#183691;">"Fetched issues from </span><span style="color:#323232;">{url}</span><span style="color:#183691;">"</span><span style="color:#323232;">)
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">return </span><span style="color:#323232;">response.json()
</span><span style="color:#323232;">
</span><span style="color:#323232;">
</span><span style="font-weight:bold;color:#a71d5d;">def </span><span style="font-weight:bold;color:#323232;">extract_issue_info</span><span style="color:#323232;">(issue, repo):
</span><span style="color:#323232;">    issue_url </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">issue[</span><span style="color:#183691;">"html_url"</span><span style="color:#323232;">]
</span><span style="color:#323232;">    issue_state </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#183691;">"[Closed]" </span><span style="font-weight:bold;color:#a71d5d;">if </span><span style="color:#323232;">issue[</span><span style="color:#183691;">"state"</span><span style="color:#323232;">] </span><span style="font-weight:bold;color:#a71d5d;">== </span><span style="color:#183691;">"closed" </span><span style="font-weight:bold;color:#a71d5d;">else </span><span style="color:#183691;">""
</span><span style="color:#323232;">    repo_abbr </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#183691;">"[BE]" </span><span style="font-weight:bold;color:#a71d5d;">if </span><span style="color:#183691;">"lemmy" </span><span style="font-weight:bold;color:#a71d5d;">in </span><span style="color:#323232;">repo </span><span style="font-weight:bold;color:#a71d5d;">else </span><span style="color:#183691;">"[UI]"
</span><span style="color:#323232;">    issue_title </span><span style="font-weight:bold;color:#a71d5d;">= f</span><span style="color:#183691;">"</span><span style="color:#323232;">{issue_state}{repo_abbr} {issue[</span><span style="color:#183691;">'title'</span><span style="color:#323232;">]}</span><span style="color:#183691;"> #</span><span style="color:#323232;">{issue[</span><span style="color:#183691;">'number'</span><span style="color:#323232;">]}</span><span style="color:#183691;">"
</span><span style="color:#323232;">    issue_body </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">issue[</span><span style="color:#183691;">"body"</span><span style="color:#323232;">]
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">return </span><span style="color:#323232;">issue_url, issue_title, issue_body
</span><span style="color:#323232;">
</span><span style="color:#323232;">
</span><span style="font-weight:bold;color:#a71d5d;">def </span><span style="font-weight:bold;color:#323232;">post_issues_to_lemmy</span><span style="color:#323232;">(lemmy, community_id, repo):
</span><span style="color:#323232;">    conn </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">sqlite3.connect(DB_FILE)
</span><span style="color:#323232;">    cursor </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">conn.cursor()
</span><span style="color:#323232;">    
</span><span style="color:#323232;">    issues </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">fetch_github_issues(repo)
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">for </span><span style="color:#323232;">issue </span><span style="font-weight:bold;color:#a71d5d;">in </span><span style="color:#323232;">issues:
</span><span style="color:#323232;">        issue_url, issue_title, issue_body </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">extract_issue_info(issue, repo)
</span><span style="color:#323232;">        
</span><span style="color:#323232;">        cursor.execute(</span><span style="color:#183691;">"</span><span style="font-weight:bold;color:#a71d5d;">SELECT</span><span style="color:#183691;"> lemmy_post_id </span><span style="font-weight:bold;color:#a71d5d;">FROM</span><span style="color:#183691;"> posts </span><span style="font-weight:bold;color:#a71d5d;">WHERE</span><span style="color:#183691;"> github_url</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#183691;">?"</span><span style="color:#323232;">, (issue_url,))
</span><span style="color:#323232;">        existing_post </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">cursor.fetchone()
</span><span style="color:#323232;">        
</span><span style="color:#323232;">        </span><span style="font-weight:bold;color:#a71d5d;">if not </span><span style="color:#323232;">existing_post:
</span><span style="color:#323232;">            post </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">lemmy.post.create(community_id, issue_title, url</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#323232;">issue_url, body</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#323232;">issue_body)[</span><span style="color:#183691;">"post_view"</span><span style="color:#323232;">][</span><span style="color:#183691;">"post"</span><span style="color:#323232;">]
</span><span style="color:#323232;">            lemmy_post_id </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">post[</span><span style="color:#183691;">"id"</span><span style="color:#323232;">]
</span><span style="color:#323232;">            lemmy_post_name </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">post[</span><span style="color:#183691;">"name"</span><span style="color:#323232;">]
</span><span style="color:#323232;">            lemmy_post_body </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">post[</span><span style="color:#183691;">"body"</span><span style="color:#323232;">]
</span><span style="color:#323232;">            cursor.execute(</span><span style="color:#183691;">"</span><span style="font-weight:bold;color:#a71d5d;">INSERT INTO</span><span style="color:#183691;"> posts (github_url, lemmy_post_id, lemmy_post_name, lemmy_post_body) </span><span style="font-weight:bold;color:#a71d5d;">VALUES</span><span style="color:#183691;"> (?, ?, ?, ?)"</span><span style="color:#323232;">, (issue_url, lemmy_post_id, lemmy_post_name, lemmy_post_body))
</span><span style="color:#323232;">            conn.commit()
</span><span style="color:#323232;">            logging.info(</span><span style="font-weight:bold;color:#a71d5d;">f</span><span style="color:#183691;">"Posted issue </span><span style="color:#323232;">{issue_title}</span><span style="color:#183691;"> to community </span><span style="color:#323232;">{community_id}</span><span style="color:#183691;">"</span><span style="color:#323232;">)
</span><span style="color:#323232;">
</span><span style="color:#323232;">
</span><span style="font-weight:bold;color:#a71d5d;">def </span><span style="font-weight:bold;color:#323232;">fetch_github_comments</span><span style="color:#323232;">(repo, issue_number):
</span><span style="color:#323232;">    url </span><span style="font-weight:bold;color:#a71d5d;">= f</span><span style="color:#183691;">"</span><span style="color:#323232;">{</span><span style="color:#0086b3;">GITHUB_API_BASE</span><span style="color:#323232;">}</span><span style="color:#183691;">/repos/</span><span style="color:#323232;">{repo}</span><span style="color:#183691;">/issues/</span><span style="color:#323232;">{issue_number}</span><span style="color:#183691;">/comments"
</span><span style="color:#323232;">    headers </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">{</span><span style="color:#183691;">"Accept"</span><span style="color:#323232;">: </span><span style="color:#183691;">"application/vnd.github+json"</span><span style="color:#323232;">}
</span><span style="color:#323232;">    response </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">requests.get(url, headers</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#323232;">headers)
</span><span style="color:#323232;">    logging.info(</span><span style="font-weight:bold;color:#a71d5d;">f</span><span style="color:#183691;">"Fetched comments for issue #</span><span style="color:#323232;">{issue_number}</span><span style="color:#183691;">"</span><span style="color:#323232;">)
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">return </span><span style="color:#323232;">response.json()
</span><span style="color:#323232;">
</span><span style="color:#323232;">
</span><span style="font-weight:bold;color:#a71d5d;">def </span><span style="font-weight:bold;color:#323232;">post_comments_to_lemmy</span><span style="color:#323232;">(lemmy, post_id, repo, issue_number):
</span><span style="color:#323232;">    conn </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">sqlite3.connect(DB_FILE)
</span><span style="color:#323232;">    cursor </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">conn.cursor()
</span><span style="color:#323232;">    
</span><span style="color:#323232;">    github_comments </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">fetch_github_comments(repo, issue_number)
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">for </span><span style="color:#323232;">comment </span><span style="font-weight:bold;color:#a71d5d;">in </span><span style="color:#323232;">github_comments:
</span><span style="color:#323232;">        github_comment_id </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">comment[</span><span style="color:#183691;">"id"</span><span style="color:#323232;">]
</span><span style="color:#323232;">        cursor.execute(</span><span style="color:#183691;">"</span><span style="font-weight:bold;color:#a71d5d;">SELECT</span><span style="color:#183691;"> lemmy_comment_id </span><span style="font-weight:bold;color:#a71d5d;">FROM</span><span style="color:#183691;"> comments </span><span style="font-weight:bold;color:#a71d5d;">WHERE</span><span style="color:#183691;"> github_comment_id</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#183691;">?"</span><span style="color:#323232;">, (github_comment_id,))
</span><span style="color:#323232;">        existing_comment </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">cursor.fetchone()
</span><span style="color:#323232;">        
</span><span style="color:#323232;">        </span><span style="font-weight:bold;color:#a71d5d;">if not </span><span style="color:#323232;">existing_comment:
</span><span style="color:#323232;">            comment_user </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">comment[</span><span style="color:#183691;">"user"</span><span style="color:#323232;">][</span><span style="color:#183691;">"login"</span><span style="color:#323232;">]
</span><span style="color:#323232;">            comment_body </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">comment[</span><span style="color:#183691;">"body"</span><span style="color:#323232;">]
</span><span style="color:#323232;">            lemmy_comment_id </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">lemmy.comment.create(post_id, comment_body)[</span><span style="color:#183691;">"comment"</span><span style="color:#323232;">][</span><span style="color:#183691;">"id"</span><span style="color:#323232;">]
</span><span style="color:#323232;">
</span><span style="color:#323232;">            cursor.execute(</span><span style="color:#183691;">"</span><span style="font-weight:bold;color:#a71d5d;">INSERT INTO</span><span style="color:#183691;"> comments (github_comment_id, lemmy_comment_id, comment_user, comment_body) </span><span style="font-weight:bold;color:#a71d5d;">VALUES</span><span style="color:#183691;"> (?, ?, ?, ?)"</span><span style="color:#323232;">, (github_comment_id, lemmy_comment_id, comment_user, comment_body))
</span><span style="color:#323232;">            conn.commit()
</span><span style="color:#323232;">            logging.info(</span><span style="font-weight:bold;color:#a71d5d;">f</span><span style="color:#183691;">"Posted comment </span><span style="color:#323232;">{github_comment_id}</span><span style="color:#183691;"> to lemmy post </span><span style="color:#323232;">{post_id}</span><span style="color:#183691;">"</span><span style="color:#323232;">)
</span><span style="color:#323232;">
</span><span style="color:#323232;">
</span><span style="font-style:italic;color:#969896;"># Fetch the GitHub issue number and Lemmy post ID for each issue
</span><span style="font-weight:bold;color:#a71d5d;">def </span><span style="font-weight:bold;color:#323232;">fetch_issue_data</span><span style="color:#323232;">(repo):
</span><span style="color:#323232;">    conn </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">sqlite3.connect(DB_FILE)
</span><span style="color:#323232;">    cursor </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">conn.cursor()
</span><span style="color:#323232;">    cursor.execute(</span><span style="color:#183691;">"</span><span style="font-weight:bold;color:#a71d5d;">SELECT</span><span style="color:#183691;"> github_url, lemmy_post_id </span><span style="font-weight:bold;color:#a71d5d;">FROM</span><span style="color:#183691;"> posts </span><span style="font-weight:bold;color:#a71d5d;">WHERE</span><span style="color:#183691;"> github_url </span><span style="font-weight:bold;color:#a71d5d;">LIKE</span><span style="color:#183691;"> ?"</span><span style="color:#323232;">, (</span><span style="font-weight:bold;color:#a71d5d;">f</span><span style="color:#183691;">"https://github.com/</span><span style="color:#323232;">{repo}</span><span style="color:#183691;">/issues/%"</span><span style="color:#323232;">,))
</span><span style="color:#323232;">    issue_data </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">cursor.fetchall()
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">return </span><span style="color:#323232;">issue_data
</span><span style="color:#323232;">
</span><span style="color:#323232;">
</span><span style="font-weight:bold;color:#a71d5d;">def </span><span style="font-weight:bold;color:#323232;">extract_issue_number</span><span style="color:#323232;">(github_url):
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">return </span><span style="color:#0086b3;">int</span><span style="color:#323232;">(github_url.split(</span><span style="color:#183691;">"/"</span><span style="color:#323232;">)[</span><span style="font-weight:bold;color:#a71d5d;">-</span><span style="color:#0086b3;">1</span><span style="color:#323232;">])
</span><span style="color:#323232;">
</span><span style="color:#323232;">
</span><span style="font-weight:bold;color:#a71d5d;">def </span><span style="font-weight:bold;color:#323232;">main</span><span style="color:#323232;">():
</span><span style="color:#323232;">    logging.info(</span><span style="color:#183691;">"Running main function"</span><span style="color:#323232;">)
</span><span style="color:#323232;">    initialize_database()
</span><span style="color:#323232;">    lemmy </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">initialize_lemmy_instance()
</span><span style="color:#323232;">    community_id </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">discover_community(lemmy, </span><span style="color:#0086b3;">LEMMY_COMMUNITY_NAME</span><span style="color:#323232;">)
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">for </span><span style="color:#323232;">repo </span><span style="font-weight:bold;color:#a71d5d;">in </span><span style="color:#0086b3;">REPOSITORIES</span><span style="color:#323232;">:
</span><span style="color:#323232;">        post_issues_to_lemmy(lemmy, community_id, repo)
</span><span style="color:#323232;">        issue_data </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">fetch_issue_data(repo)
</span><span style="color:#323232;">        </span><span style="font-weight:bold;color:#a71d5d;">for </span><span style="color:#323232;">github_url, lemmy_post_id </span><span style="font-weight:bold;color:#a71d5d;">in </span><span style="color:#323232;">issue_data:
</span><span style="color:#323232;">            issue_number </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">extract_issue_number
</span><span style="color:#323232;">            post_comments_to_lemmy(lemmy, lemmy_post_id, repo, issue_number)
</span><span style="color:#323232;">
</span><span style="color:#323232;">
</span><span style="font-weight:bold;color:#a71d5d;">def </span><span style="font-weight:bold;color:#323232;">run_periodically</span><span style="color:#323232;">():
</span><span style="color:#323232;">    main()
</span><span style="color:#323232;">    schedule.every(</span><span style="color:#0086b3;">2</span><span style="color:#323232;">).hours.do(main)
</span><span style="color:#323232;">
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">while </span><span style="color:#0086b3;">True</span><span style="color:#323232;">:
</span><span style="color:#323232;">        schedule.run_pending()
</span><span style="color:#323232;">        time.sleep(</span><span style="color:#0086b3;">60</span><span style="color:#323232;">)
</span><span style="color:#323232;">
</span><span style="color:#323232;">
</span><span style="font-weight:bold;color:#a71d5d;">if </span><span style="color:#323232;">__name__ </span><span style="font-weight:bold;color:#a71d5d;">== </span><span style="color:#183691;">"__main__"</span><span style="color:#323232;">:
</span><span style="color:#323232;">    logging.info(</span><span style="color:#183691;">"Starting script"</span><span style="color:#323232;">)
</span><span style="color:#323232;">    run_periodically()
</span>
kSPvhmTOlwvMd7Y7E,

All IO related stuff should be a replaceable dependency

But this is very readable tho

muppetjones,

Also, you probably want a rotating file handler for the logging.

muppetjones,

Tests. And typing. And comments.

Tests can help you be sure that each piece is working as intended and that they’re working together. You can also mock bits out or create a temporary database for local dev.

Adding typing and comments, especially docstrings will help others read your code more easily.

const_void,
<pre style="background-color:#ffffff;">
<span style="color:#323232;">lemmy_comment_id=1
</span><span style="color:#323232;">
</span><span style="color:#323232;">if prod:
</span><span style="color:#323232;">   lemmy_comment_id = lemmy.comment.create(post_id, comment_body)["comment"]["id"]
</span>

Etc. not particularly graceful but perhaps enough to tease out what is happening. Remember to branch!

manitcor,

even in a functional/procedural paradigm you need to encapsulate outside API calls so you can test without running an entire mock server.

breadsmasher,
@breadsmasher@lemmy.world avatar
InternetPirate, (edited )

Just change lemmy.post.create to lemmy.post.createe to trigger an AttributeError. That way you can debug the code without creating any posts. You can also use many print statements all around the code, I would use two for each line to make sure the computer isn’t fooling you. Lastly, you can spin up your own Lemmy instance to not have to worry about the generated posts.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • python@programming.dev
  • DreamBathrooms
  • mdbf
  • ethstaker
  • magazineikmin
  • cubers
  • rosin
  • thenastyranch
  • Youngstown
  • osvaldo12
  • slotface
  • khanakhh
  • kavyap
  • InstantRegret
  • Durango
  • JUstTest
  • everett
  • tacticalgear
  • modclub
  • anitta
  • cisconetworking
  • tester
  • ngwrru68w68
  • GTA5RPClips
  • normalnudes
  • megavids
  • Leos
  • provamag3
  • lostlight
  • All magazines