In my Rmd document, I'm including some python code, but since it takes forever to run, Id like to not evaluate it. I set the eval=FALSE
tag, but when I knit the document, it still attempts to run it. any ideas?
[3 backticks]{python eval=FALSE, engine.path='/usr/local/bin/python3'}
from pyquery import PyQuery as pq
import requests
import smtplib
import os
import sys
import os.path
import re
import pandas as pd
import feather
STATUS_OK = 0
STATUS_ERROR = -1
FILENAME_LASTSTATUS = os.path.join(sys.path[0], "LAST_STATUS_{0}.txt")
mynum = 1890048782 # THis is my case number
def poll_optstatus(casenumber):
"""
poll USCIS case status given receipt number (casenumber)
Args:
param1: casenumber the case receipt number
Returns:
a tuple (status, details) containing status and detailed info
Raise:
error:
"""
headers = {
'Accept': 'text/html, application/xhtml+xml, image/jxr, */*',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language':
'en-US, en; q=0.8, zh-Hans-CN; q=0.5, zh-Hans; q=0.3',
'Cache-Control': 'no-cache',
'Connection': 'Keep-Alive',
'Content-Type': 'application/x-www-form-urlencoded',
'Host': 'egov.uscis.gov',
'Referer': 'https://egov.uscis.gov/casestatus/mycasestatus.do',
'User-Agent':
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586'
}
url = "https://egov.uscis.gov/casestatus/mycasestatus.do"
data = {"appReceiptNum": casenumber, 'caseStatusSearchBtn': 'CHECK+STATUS'}
res = requests.post(url, data=data, headers=headers)
doc = pq(res.text)
status = doc('h1').text()
code = STATUS_OK if status else STATUS_ERROR
details = doc('.text-center p').text()
return (code, status, details)
# Get every 10th case status
case_nums = ['YSC' + str(i) for i in range(1890038932, 1890079632)]
vals = [poll_optstatus(case) for case in case_nums]
df = pd.DataFrame.from_records(vals)
df['case'] = case_nums
feather.write_dataframe(df, "uscis.feather")
[3 backticks]