diff --git a/003/requirements.txt b/003/requirements.txt index c40dd4a..c6aef4f 100644 --- a/003/requirements.txt +++ b/003/requirements.txt @@ -1,4 +1,4 @@ imageio==2.1.2 numpy==1.12.1 olefile==0.44 -Pillow==4.0.0 +Pillow==6.2.0 diff --git a/011/data.txt b/011/data.txt new file mode 100644 index 0000000..0a50cb4 --- /dev/null +++ b/011/data.txt @@ -0,0 +1,2 @@ +This is the text that will be emailed out. +The main emailer script should point to this file (or another data file of your choice). \ No newline at end of file diff --git a/011/generic_emailer.py b/011/generic_emailer.py index 6e73c21..de6fc80 100644 --- a/011/generic_emailer.py +++ b/011/generic_emailer.py @@ -9,7 +9,7 @@ from email_list import EMAILS -DATA_FILE = 'scraped_data_file' +DATA_FILE = 'data.txt' from_addr = 'your_email@gmail.com' to_addr = 'some_recipient@gmail.com' bcc = EMAILS diff --git a/013/requirements.txt b/013/requirements.txt index 168c40b..9437de8 100644 --- a/013/requirements.txt +++ b/013/requirements.txt @@ -1,8 +1,4 @@ -click==6.7 -Flask==0.12.1 -itsdangerous==0.24 -Jinja2==2.9.6 -MarkupSafe==1.0 -pytz==2017.2 -requests==2.13.0 -Werkzeug==0.12.1 +click +Flask +pytz +requests diff --git a/016/requirements.txt b/016/requirements.txt index 51f1ad1..4d7747f 100644 --- a/016/requirements.txt +++ b/016/requirements.txt @@ -3,7 +3,7 @@ cffi==1.9.1 cryptography==1.8.1 idna==2.5 packaging==16.8 -paramiko==2.1.2 +paramiko pyasn1==0.2.3 pycparser==2.17 pyparsing==2.2.0 diff --git a/022/genlink.py b/022/genlink.py index 153328e..07999a7 100644 --- a/022/genlink.py +++ b/022/genlink.py @@ -9,7 +9,7 @@ LINK = 'http://www.amazon.com/dp/{}/?tag={}' # https://pybit.es/mastering-regex.html URL = re.compile(r""" - ^https://(?:www.)?amazon.com/ + ^https://(?:www.)?amazon.[^/]+?/ [^/]+/ dp/ (?P[^/]+) # the numberic asin follows the dp/ diff --git a/032/requirements.txt b/032/requirements.txt index 28a0761..8be1c9f 100644 --- a/032/requirements.txt +++ b/032/requirements.txt @@ -1,7 +1,3 @@ -click==6.7 -Flask==0.12.1 -Flask-JSGlue==0.3.1 -itsdangerous==0.24 -Jinja2==2.9.6 -MarkupSafe==1.0 -Werkzeug==0.12.1 +click +Flask +Flask-JSGlue diff --git a/051/requests_login.py b/051/requests_login.py index a07c382..9a188f8 100644 --- a/051/requests_login.py +++ b/051/requests_login.py @@ -5,10 +5,10 @@ import requests #This URL will be the URL that your login form points to with the "action" tag. -POST-LOGIN-URL = 'https://my.freecycle.org/login' +POST_LOGIN_URL = 'https://my.freecycle.org/login' #This URL is the page you actually want to pull down with requests. -REQUEST-URL = 'https://my.freecycle.org/home/posts' +REQUEST_URL = 'https://my.freecycle.org/home/posts' #username-input-name is the "name" tag associated with the username input field of the login form. @@ -19,6 +19,6 @@ } with requests.Session() as session: - post = session.post(POST-LOGIN-URL, data=payload) - r = session.get(REQUEST-URL) + post = session.post(POST_LOGIN_URL, data=payload) + r = session.get(REQUEST_URL) print(r.text) #or whatever else you want to do with the request data! diff --git a/070/requirements.txt b/070/requirements.txt index 8d822a4..0141fdc 100644 --- a/070/requirements.txt +++ b/070/requirements.txt @@ -1,4 +1,4 @@ html5lib==0.999999999 ipykernel==4.6.1 -lxml==3.8.0 +lxml==4.6.2 pandas==0.20.2 diff --git a/074/requirements.txt b/074/requirements.txt index e61d74e..dbf4f3a 100644 --- a/074/requirements.txt +++ b/074/requirements.txt @@ -2,6 +2,6 @@ certifi==2017.4.17 chardet==3.0.4 idna==2.5 olefile==0.44 -Pillow==4.1.1 +Pillow==6.2.0 requests==2.17.3 urllib3==1.21.1 diff --git a/076/requirements.txt b/076/requirements.txt index 13b2383..24f62f8 100644 --- a/076/requirements.txt +++ b/076/requirements.txt @@ -4,4 +4,4 @@ certifi==2017.4.17 chardet==3.0.4 idna==2.5 requests==2.17.3 -urllib3==1.21.1 +urllib3==1.26.5 diff --git a/094/requirements.txt b/094/requirements.txt index bc4dceb..c4002c1 100644 --- a/094/requirements.txt +++ b/094/requirements.txt @@ -1,9 +1,9 @@ asn1crypto==0.22.0 bcrypt==3.1.3 cffi==1.10.0 -cryptography==1.9 +cryptography==2.3 idna==2.5 -paramiko==2.2.1 +paramiko pyasn1==0.2.3 pycparser==2.17 PyNaCl==1.1.2 diff --git a/099/requirements.txt b/099/requirements.txt index 6aee249..a62870b 100644 --- a/099/requirements.txt +++ b/099/requirements.txt @@ -3,4 +3,4 @@ Flask==0.12.2 itsdangerous==0.24 Jinja2==2.9.6 MarkupSafe==1.0 -Werkzeug==0.12.2 +Werkzeug==0.15.3 diff --git a/README.md b/README.md index dd75f21..629ea5d 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,15 @@ -## PyBites 100 Days Of Code Challenge +## PyBites 100 Days Of Code Challenge (Mar 30, 2017 - Jul 07, 2017) -* See our article: [100 Days of PyBites, 100 Days of Code](https://pybit.es/special-100days). +* Kicking off the challenge: [100 Days of PyBites, 100 Days of Code](https://pybit.es/articles/special-100days/). -* We will update this [progress log](LOG.md) as we go and [tweet](https://twitter.com/pybites) with the #100DaysOfCode hashtag. +* Our review article at the end: [200 Days of PyBites, 100 Days of Code and our Next Project](https://pybit.es/articles/special-100days-of-code). -* Inspiration by [Free Code Camp / Alexander Kallaway](https://medium.freecodecamp.com/join-the-100daysofcode-556ddb4579e4#.qmiel1bhd). +* See all we coded in our [progress log](LOG.md) which we [tweeted out](https://twitter.com/pybites) daily with the #100DaysOfCode hashtag. + +* After doing the challenge we spoke about our experiece on the [Talk Python podcast](https://talkpython.fm/episodes/show/140/level-up-your-python-with-100daysofcode-challenge) + +* After this podcast we collaborated with Talk Python on a dedicated course, released in March 2018: [100 Days of Code in Python](talkpython.fm/100days?s=pybites). + +-- + +* Original 100 Days idea by [Alexander Kallaway](https://medium.freecodecamp.org/join-the-100daysofcode-556ddb4579e4).