changes to make imports easier, refresh requirements.txt

This commit is contained in:
Coding with Peter 2024-02-03 08:16:33 -08:00
parent 38985af6aa
commit 9bbf91a5ee
6 changed files with 453 additions and 339 deletions

View File

@ -258,7 +258,7 @@ def Memoize( func):
"""
class MyRepl:
description = {
"switch ": "Switch stream. You can use either 'switch public' or 'switch mine'",
@ -319,16 +319,11 @@ class MyRepl:
@Memoize
def cycle_color(self, s):
"""
Cycle the colors_shuffle
"""
#Cycle the colors_shuffle
return next(self.cyc)
def ascii_art(self, text):
"""
Draw the Ascii Art
"""
return
#fi = figlet_format(text, font='doom')
#for i in fi.split('\n'):
@ -336,9 +331,6 @@ class MyRepl:
def close_window(self, ):
"""
Close screen
"""
global screen
screen.keypad(0);
curses.nocbreak();
@ -347,9 +339,6 @@ class MyRepl:
def suggest(self, word):
"""
Find suggestion
"""
rel = []
if not word: return rel
word = word.lower()
@ -367,18 +356,13 @@ class MyRepl:
def curses_print_word(self, word,color_pair_code):
"""
Print a word
"""
global screen
word = word.encode('utf8')
screen.addstr(word,curses.color_pair(color_pair_code))
def curses_print_line(self, line,color_pair_code):
"""
Print a line, scroll down if need
"""
#Print a line, scroll down if need
global screen
line = line.encode('utf8')
y,x = screen.getyx()
@ -396,9 +380,6 @@ class MyRepl:
def redraw(self, start_y,end_y,fallback_y,fallback_x):
"""
Redraw lines from buf
"""
global screen
for cursor in range(start_y,end_y):
screen.move(cursor,0)
@ -412,9 +393,6 @@ class MyRepl:
def scroll_down(self, noredraw,fallback_y,fallback_x):
"""
Scroll down 1 line
"""
global screen
# Recreate buf
# noredraw = n means that screen will scroll down n-1 line
@ -431,9 +409,6 @@ class MyRepl:
def clear_upside(self, n,y,x):
"""
Clear n lines upside
"""
global screen
for i in range(1,n+1):
screen.move(y-i,0)
@ -443,9 +418,7 @@ class MyRepl:
def display_suggest(self, y,x,word):
"""
Display box of suggestion
"""
# Display box of suggestion
global screen
g = self.g
side = 2
@ -543,9 +516,6 @@ class MyRepl:
def inputloop(self, ):
"""
Main loop input
"""
global screen
word = ''
screen.addstr("\n" + self.g['prefix'],curses.color_pair(7))
@ -755,5 +725,4 @@ def repl():
def repl():
repl_degs()
"""

View File

@ -1209,11 +1209,11 @@ def fetch_current_rosters_auto():
fetch_minute = "58"
schedule.every().hour.at(f":{fetch_minute}").do(fetch_current_rosters)
schedule.every().day.at("12:35").do(sync_non_interactive)
schedule.every().day.at("21:00").do(sync_non_interactive)
#schedule.every().day.at("12:35").do(sync_non_interactive)
#schedule.every().day.at("21:00").do(sync_non_interactive)
print(f"running every hour on the :{fetch_minute}\n")
#print(f"running every hour on the :{fetch_minute}\n")
while True:
try:
schedule.run_pending()

View File

@ -1,287 +1,145 @@
anaconda-client==1.6.5
anaconda-navigator==1.6.9
anaconda-project==0.8.0
asn1crypto==0.22.0
astroid==1.5.3
astropy==2.0.2
atomicfile==1.0.1
attrs==18.2.0
Automat==0.7.0
Babel==2.5.0
backports.shutil-get-terminal-size==1.0.0
bcrypt==3.1.7
beautifulsoup4==4.6.0
bitarray==0.8.1
bkcharts==0.2
blaze==0.11.3
bleach==2.0.0
blinker==1.4
bokeh==0.12.10
boto==2.48.0
boto3==1.10.20
botocore==1.13.20
Bottleneck==1.2.1
certifi==2019.9.11
cffi==1.10.0
chardet==3.0.4
clfparser==0.3
click==6.7
cloudpickle==0.4.0
clyent==1.2.2
coinmarketcap==5.0.3
colorama==0.3.9
colorlog==4.0.2
conda==4.3.30
conda-build==3.0.27
conda-verify==2.0.0
constantly==15.1.0
contextlib2==0.5.5
cryptography==2.5
cssselect==1.0.3
cycler==0.10.0
cymem==2.0.2
Cython==0.28.5
cytoolz==0.9.0.1
dask==0.15.3
datashape==0.5.4
DAWG-Python==0.7.2
decorator==4.1.2
deepdiff==5.0.2
deeppavlov==0.1.6
dill==0.2.9
distributed==1.19.1
dnspython==2.0.0
docopt==0.6.2
docutils==0.14
docx==0.2.4
aiofiles==23.2.1
aiohttp==3.9.3
aiohttp-retry==2.8.3
aiomysql==0.2.0
aiosignal==1.3.1
annoy==1.17.3
async-timeout==4.0.3
asyncpg==0.29.0
attrs==23.2.0
Babel==2.14.0
bcrypt==4.1.2
beautifulsoup4==4.12.3
bidict==0.22.1
blinker==1.7.0
certifi==2024.2.2
cffi==1.16.0
charset-normalizer==3.3.2
click==8.1.7
colorama==0.4.6
contourpy==1.2.0
courlan==1.0.0
cryptography==42.0.2
cycler==0.12.1
dateparser==1.2.0
deepdiff==6.7.1
docxcompose==1.4.0
docxtpl==0.16.7
durable-rules==2.0.28
email-validator==1.1.1
emoji==0.5.4
en-core-web-lg==2.0.0
en-core-web-sm==2.0.0
entrypoints==0.2.3
et-xmlfile==1.0.1
fastcache==1.0.2
filelock==2.0.12
flasgger==0.9.1
Flask==1.0.2
Flask-Caching==1.9.0
Flask-Cors==3.0.6
Flask-HTTPAuth==4.1.0
Flask-Login==0.5.0
Flask-Mail==0.9.1
Flask-SocketIO==4.3.1
Flask-SQLAlchemy==2.4.4
Flask-User==1.0.2.2
Flask-WTF==0.14.3
funcy==1.14
fuzzywuzzy==0.16.0
gensim==3.8.3
gevent==1.2.2
gevent-websocket==0.10.1
glob2==0.5
glob3==0.0.1
gmpy2==2.0.8
graphviz==0.15
greenlet==0.4.12
h5py==2.8.0
heapdict==1.0.0
html2text==2018.1.9
html5lib==0.999999999
hyperlink==18.0.0
idna==2.8
imageio==2.2.0
imagesize==0.7.1
importlib-metadata==2.0.0
incremental==17.5.0
inflection==0.3.1
ipdb==0.13.4
ipykernel==4.6.1
ipython==6.1.0
ipython-genutils==0.2.0
ipywidgets==7.0.0
isort==4.2.15
itsdangerous==0.24
jdcal==1.3
jedi==0.10.2
Jinja2==2.10
jmespath==0.9.4
jsondiff==1.2.0
jsonschema==2.6.0
jupyter-client==5.1.0
jupyter-console==5.2.0
jupyter-core==4.3.0
jupyterlab==0.27.0
jupyterlab-launcher==0.4.0
Keras==2.2.0
Keras-Applications==1.0.2
Keras-Preprocessing==1.0.1
lazy-object-proxy==1.3.1
llvmlite==0.20.0
locket==0.2.0
lxml==4.1.0
Markdown==3.3.3
MarkupSafe==1.0
matplotlib==2.1.0
mccabe==0.6.1
mistune==0.7.4
mmh3==2.5.1
more-itertools==5.0.0
mpmath==0.19
msgpack==0.5.6
msgpack-numpy==0.4.3.2
msgpack-python==0.4.8
multipledispatch==0.4.9
murmurhash==1.0.2
mysql-connector==2.1.6
mysql-connector-python==8.0.15
navigator-updater==0.1.0
nbconvert==5.3.1
nbformat==4.4.0
ndg-httpsclient==0.5.1
networkx==2.0
nltk==3.2.5
nose==1.3.7
notebook==5.0.0
nrepl-python-client==0.0.3
numba==0.35.0+10.g143f70e90
numexpr==2.6.2
numpy==1.14.5
numpydoc==0.7.0
odo==0.5.1
olefile==0.44
openpyxl==2.4.8
ordered-set==4.0.2
ortools==7.1.6720
overrides==1.9
packaging==16.8
paho-mqtt==1.5.0
filelock==3.13.1
Flask==3.0.1
Flask-SocketIO==5.3.6
Flask-SSE==1.0.0
fonttools==4.47.2
frozenlist==1.4.1
fsspec==2023.12.2
funcy==2.0
gensim==4.3.2
greenlet==3.0.3
h11==0.14.0
html2markdown==0.1.7
htmldate==1.7.0
huggingface-hub==0.20.3
idna==3.6
instructure-dap-client==0.3.18
itsdangerous==2.1.2
Jinja2==3.1.3
joblib==1.3.2
json_strong_typing==0.3.2
jsondiff==2.0.0
jsonschema==4.21.1
jsonschema-specifications==2023.12.1
jusText==3.0.0
kiwisolver==1.4.5
langcodes==3.3.0
lark==1.1.9
linkify-it-py==2.0.2
lxml==5.1.0
Markdown==3.5.2
markdown-it-py==3.0.0
markdownify==0.11.6
MarkupSafe==2.1.5
matplotlib==3.8.2
mdit-py-plugins==0.4.0
mdurl==0.1.2
minizinc==0.9.0
mpmath==1.3.0
multidict==6.0.4
networkx==3.2.1
nltk==3.8.1
numpy==1.26.3
ordered-set==4.1.0
orjson==3.9.12
packaging==23.2
paho-mqtt==1.6.1
pampy==0.3.0
pandas==0.23.1
pandas-datareader==0.8.1
pandocfilters==1.4.2
paramiko==2.7.1
parsel==1.5.1
partd==0.3.8
passlib==1.7.2
path.py==10.3.1
pandas==2.2.0
paramiko==3.4.0
path-dict==4.0.0
pathlib==1.0.1
pathlib2==2.3.0
patsy==0.4.1
peewee==3.9.5
pep8==1.7.0
pervane==0.0.66
pexpect==4.2.1
pickleshare==0.7.4
Pillow==4.2.1
pkginfo==1.4.1
plac==0.9.6
plotly==4.14.1
ply==3.10
preshed==2.0.1
prompt-toolkit==1.0.15
protobuf==3.7.1
psutil==5.4.0
ptyprocess==0.5.2
py==1.4.34
pyasn1==0.4.5
pyasn1-modules==0.2.4
pycodestyle==2.3.1
pycosat==0.6.2
pycparser==2.18
pycrypto==2.6.1
pycurl==7.43.0
pydbus==0.6.0
PyDispatcher==2.0.5
pyflakes==1.6.0
Pygments==2.2.0
PyHamcrest==1.9.0
pylint==1.7.4
pymorphy2==0.8
pymorphy2-dicts==2.4.393442.3710985
pymorphy2-dicts-ru==2.4.404381.4453942
PyNaCl==1.3.0
pync==2.0.3
pyodbc==4.0.17
pyOpenSSL==18.0.0
pypandoc==1.4
pyparsing==2.2.0
pdfminer==20191125
pdfminer.six==20231228
pillow==10.2.0
pyarrow==15.0.0
pycparser==2.21
pycryptodome==3.20.0
pygame==2.5.2
Pygments==2.17.2
PyJWT==2.8.0
PyMySQL==1.1.0
PyNaCl==1.5.0
pypandoc==1.12
pyparsing==3.1.1
PyPDF2==3.0.1
pysftp==0.2.9
PySocks==1.6.7
pyTelegramBotAPI==3.5.2
pytest==3.2.1
python-dateutil==2.6.1
python-engineio==3.13.2
python-socketio==4.6.0
pytz==2017.2
PyWavelets==0.5.2
PyYAML==3.12
pyzmq==16.0.2
QtAwesome==0.4.4
qtconsole==4.3.1
QtPy==1.3.1
Quandl==3.4.8
queuelib==1.5.0
rake-nltk==1.0.4
readline==6.2.4.1
regex==2018.1.10
requests==2.22.0
requests-cache==0.5.2
retrying==1.3.3
rope==0.10.5
ruamel-yaml==0.11.14
rusenttokenize==0.0.4
s3transfer==0.2.1
schedule==0.6.0
scikit-image==0.13.0
scikit-learn==0.19.1
scipy==1.1.0
Scrapy==1.6.0
seaborn==0.8
service-identity==18.1.0
simplegeneric==0.8.1
singledispatch==3.4.0.3
six==1.12.0
smart-open==3.0.0
snowballstemmer==1.2.1
sortedcollections==0.5.3
sortedcontainers==1.5.7
spacy==2.0.18
Sphinx==1.6.3
sphinxcontrib-websupport==1.0.1
spyder==3.2.4
SQLAlchemy==1.1.13
statsmodels==0.8.0
striprtf==0.0.11
summa==1.2.0
sympy==1.1.1
tables==3.4.2
tblib==1.3.2
terminado==0.6
testpath==0.3.1
textdistance==4.2.0
thinc==6.12.1
toolz==0.8.2
tornado==4.5.2
tqdm==4.23.4
traitlets==4.3.2
Twisted==18.9.0
typing==3.6.2
ujson==1.35
unicodecsv==0.14.1
urllib3==1.25.7
w3lib==1.20.0
wcwidth==0.1.7
webencodings==0.5.1
Werkzeug==0.14.1
widgetsnbextension==3.0.2
wrapt==1.10.11
WTForms==2.3.1
xlrd==1.1.0
XlsxWriter==1.0.2
python-dateutil==2.8.2
python-docx==1.1.0
python-engineio==4.8.2
python-socketio==5.11.0
pytz==2024.1
pywin32==306
PyYAML==6.0.1
redis==5.0.1
referencing==0.33.0
regex==2023.12.25
requests==2.31.0
rich==13.7.0
rpds-py==0.17.1
safetensors==0.4.2
schedule==1.2.1
scikit-learn==1.4.0
scipy==1.12.0
sentence-transformers==2.3.1
sentencepiece==0.1.99
simple-websocket==1.0.0
simpy==4.1.1
six==1.16.0
smart-open==6.4.0
sortedcontainers==2.4.0
soupsieve==2.5
SQLAlchemy==2.0.25
striprtf==0.0.26
sympy==1.12
textdistance==4.6.1
textual==0.48.2
threadpoolctl==3.2.0
tld==0.13
tokenizers==0.15.1
tomd==0.1.3
toolz==0.12.1
torch==2.2.0
tqdm==4.66.1
trafilatura==1.7.0
transformers==4.37.2
types-aiofiles==23.2.0.20240106
typing_extensions==4.9.0
tzdata==2023.4
tzlocal==5.2
uc-micro-py==1.0.2
urllib3==2.2.0
Werkzeug==3.0.1
Whoosh==2.7.4
wsproto==1.2.0
xlwt==1.3.0
yattag==1.11.1
youtube-dl==2019.11.5
zict==0.1.3
zipp==3.4.0
zope.interface==4.6.0
yarl==1.9.4
yattag==1.15.2

287
requirements_2023.txt Normal file
View File

@ -0,0 +1,287 @@
anaconda-client==1.6.5
anaconda-navigator==1.6.9
anaconda-project==0.8.0
asn1crypto==0.22.0
astroid==1.5.3
astropy==2.0.2
atomicfile==1.0.1
attrs==18.2.0
Automat==0.7.0
Babel==2.5.0
backports.shutil-get-terminal-size==1.0.0
bcrypt==3.1.7
beautifulsoup4==4.6.0
bitarray==0.8.1
bkcharts==0.2
blaze==0.11.3
bleach==2.0.0
blinker==1.4
bokeh==0.12.10
boto==2.48.0
boto3==1.10.20
botocore==1.13.20
Bottleneck==1.2.1
certifi==2019.9.11
cffi==1.10.0
chardet==3.0.4
clfparser==0.3
click==6.7
cloudpickle==0.4.0
clyent==1.2.2
coinmarketcap==5.0.3
colorama==0.3.9
colorlog==4.0.2
conda==4.3.30
conda-build==3.0.27
conda-verify==2.0.0
constantly==15.1.0
contextlib2==0.5.5
cryptography==2.5
cssselect==1.0.3
cycler==0.10.0
cymem==2.0.2
Cython==0.28.5
cytoolz==0.9.0.1
dask==0.15.3
datashape==0.5.4
DAWG-Python==0.7.2
decorator==4.1.2
deepdiff==5.0.2
deeppavlov==0.1.6
dill==0.2.9
distributed==1.19.1
dnspython==2.0.0
docopt==0.6.2
docutils==0.14
docx==0.2.4
durable-rules==2.0.28
email-validator==1.1.1
emoji==0.5.4
en-core-web-lg==2.0.0
en-core-web-sm==2.0.0
entrypoints==0.2.3
et-xmlfile==1.0.1
fastcache==1.0.2
filelock==2.0.12
flasgger==0.9.1
Flask==1.0.2
Flask-Caching==1.9.0
Flask-Cors==3.0.6
Flask-HTTPAuth==4.1.0
Flask-Login==0.5.0
Flask-Mail==0.9.1
Flask-SocketIO==4.3.1
Flask-SQLAlchemy==2.4.4
Flask-User==1.0.2.2
Flask-WTF==0.14.3
funcy==1.14
fuzzywuzzy==0.16.0
gensim==3.8.3
gevent==1.2.2
gevent-websocket==0.10.1
glob2==0.5
glob3==0.0.1
gmpy2==2.0.8
graphviz==0.15
greenlet==0.4.12
h5py==2.8.0
heapdict==1.0.0
html2text==2018.1.9
html5lib==0.999999999
hyperlink==18.0.0
idna==2.8
imageio==2.2.0
imagesize==0.7.1
importlib-metadata==2.0.0
incremental==17.5.0
inflection==0.3.1
ipdb==0.13.4
ipykernel==4.6.1
ipython==6.1.0
ipython-genutils==0.2.0
ipywidgets==7.0.0
isort==4.2.15
itsdangerous==0.24
jdcal==1.3
jedi==0.10.2
Jinja2==2.10
jmespath==0.9.4
jsondiff==1.2.0
jsonschema==2.6.0
jupyter-client==5.1.0
jupyter-console==5.2.0
jupyter-core==4.3.0
jupyterlab==0.27.0
jupyterlab-launcher==0.4.0
Keras==2.2.0
Keras-Applications==1.0.2
Keras-Preprocessing==1.0.1
lazy-object-proxy==1.3.1
llvmlite==0.20.0
locket==0.2.0
lxml==4.1.0
Markdown==3.3.3
MarkupSafe==1.0
matplotlib==2.1.0
mccabe==0.6.1
mistune==0.7.4
mmh3==2.5.1
more-itertools==5.0.0
mpmath==0.19
msgpack==0.5.6
msgpack-numpy==0.4.3.2
msgpack-python==0.4.8
multipledispatch==0.4.9
murmurhash==1.0.2
mysql-connector==2.1.6
mysql-connector-python==8.0.15
navigator-updater==0.1.0
nbconvert==5.3.1
nbformat==4.4.0
ndg-httpsclient==0.5.1
networkx==2.0
nltk==3.2.5
nose==1.3.7
notebook==5.0.0
nrepl-python-client==0.0.3
numba==0.35.0+10.g143f70e90
numexpr==2.6.2
numpy==1.14.5
numpydoc==0.7.0
odo==0.5.1
olefile==0.44
openpyxl==2.4.8
ordered-set==4.0.2
ortools==7.1.6720
overrides==1.9
packaging==16.8
paho-mqtt==1.5.0
pampy==0.3.0
pandas==0.23.1
pandas-datareader==0.8.1
pandocfilters==1.4.2
paramiko==2.7.1
parsel==1.5.1
partd==0.3.8
passlib==1.7.2
path.py==10.3.1
pathlib==1.0.1
pathlib2==2.3.0
patsy==0.4.1
peewee==3.9.5
pep8==1.7.0
pervane==0.0.66
pexpect==4.2.1
pickleshare==0.7.4
Pillow==4.2.1
pkginfo==1.4.1
plac==0.9.6
plotly==4.14.1
ply==3.10
preshed==2.0.1
prompt-toolkit==1.0.15
protobuf==3.7.1
psutil==5.4.0
ptyprocess==0.5.2
py==1.4.34
pyasn1==0.4.5
pyasn1-modules==0.2.4
pycodestyle==2.3.1
pycosat==0.6.2
pycparser==2.18
pycrypto==2.6.1
pycurl==7.43.0
pydbus==0.6.0
PyDispatcher==2.0.5
pyflakes==1.6.0
Pygments==2.2.0
PyHamcrest==1.9.0
pylint==1.7.4
pymorphy2==0.8
pymorphy2-dicts==2.4.393442.3710985
pymorphy2-dicts-ru==2.4.404381.4453942
PyNaCl==1.3.0
pync==2.0.3
pyodbc==4.0.17
pyOpenSSL==18.0.0
pypandoc==1.4
pyparsing==2.2.0
pysftp==0.2.9
PySocks==1.6.7
pyTelegramBotAPI==3.5.2
pytest==3.2.1
python-dateutil==2.6.1
python-engineio==3.13.2
python-socketio==4.6.0
pytz==2017.2
PyWavelets==0.5.2
PyYAML==3.12
pyzmq==16.0.2
QtAwesome==0.4.4
qtconsole==4.3.1
QtPy==1.3.1
Quandl==3.4.8
queuelib==1.5.0
rake-nltk==1.0.4
readline==6.2.4.1
regex==2018.1.10
requests==2.22.0
requests-cache==0.5.2
retrying==1.3.3
rope==0.10.5
ruamel-yaml==0.11.14
rusenttokenize==0.0.4
s3transfer==0.2.1
schedule==0.6.0
scikit-image==0.13.0
scikit-learn==0.19.1
scipy==1.1.0
Scrapy==1.6.0
seaborn==0.8
service-identity==18.1.0
simplegeneric==0.8.1
singledispatch==3.4.0.3
six==1.12.0
smart-open==3.0.0
snowballstemmer==1.2.1
sortedcollections==0.5.3
sortedcontainers==1.5.7
spacy==2.0.18
Sphinx==1.6.3
sphinxcontrib-websupport==1.0.1
spyder==3.2.4
SQLAlchemy==1.1.13
statsmodels==0.8.0
striprtf==0.0.11
summa==1.2.0
sympy==1.1.1
tables==3.4.2
tblib==1.3.2
terminado==0.6
testpath==0.3.1
textdistance==4.2.0
thinc==6.12.1
toolz==0.8.2
tornado==4.5.2
tqdm==4.23.4
traitlets==4.3.2
Twisted==18.9.0
typing==3.6.2
ujson==1.35
unicodecsv==0.14.1
urllib3==1.25.7
w3lib==1.20.0
wcwidth==0.1.7
webencodings==0.5.1
Werkzeug==0.14.1
widgetsnbextension==3.0.2
wrapt==1.10.11
WTForms==2.3.1
xlrd==1.1.0
XlsxWriter==1.0.2
xlwt==1.3.0
yattag==1.11.1
youtube-dl==2019.11.5
zict==0.1.3
zipp==3.4.0
zope.interface==4.6.0

View File

@ -7,7 +7,7 @@ from flask import send_from_directory
import hashlib, funcy, platform, requests
from datetime import datetime
from orgpython import to_html
#from orgpython import to_html
from localcache import sqlite_file, db # personnel_meta # personnel_fetch
from localcache import user_enrolled_in
@ -253,10 +253,10 @@ def writing(fname):
if ext == "md":
src = inp.read()
return style + markdown.markdown(src) + in_form(editor(src),fname)
if ext == "org":
src = inp.read()
return to_html(src, toc=True, offset=0, highlight=True)
if ext == "rtf":
#if ext == "org":
# src = inp.read()
# return (src, toc=True, offset=0, highlight=True)
if ext == "rtto_htmlf":
text = "<br />\n".join( rtf_to_text(inp.read()).split('\n') )
return style + text
if ext == "docx":

View File

@ -15,7 +15,7 @@
import pysftp, os, datetime, requests, re, json, sqlite3, codecs, csv, sys
import funcy, os.path, shutil, urllib
from datetime import datetime, strptime
from datetime import datetime
from collections import defaultdict
#from datetime import strptime
from time import mktime
@ -521,8 +521,8 @@ def course_2060_dates(crn=""):
print ( 'I couldn\'t find that CRN in ' + schedfile )
else:
a = s['date'].split(' - ')
beginT = strptime(a[0],"%b %d, %Y")
endT = strptime(a[1],"%b %d, %Y")
beginT = datetime.strptime(a[0],"%b %d, %Y")
endT = datetime.strptime(a[1],"%b %d, %Y")
# Begin and end dates - direct from schedule
# Calculate 20% / 60% dates.
@ -587,7 +587,7 @@ def hours_calc_pulldata(course_id=''):
if results:
for hit in results:
hitT = strptime(str(hit['created_at']),"%Y-%m-%dT%H:%M:%SZ")
hitT = datetime.strptime(str(hit['created_at']),"%Y-%m-%dT%H:%M:%SZ")
hittime = datetime.datetime.fromtimestamp( mktime(hitT) )
if hittime > endDT: bag[4] += 1