From 9e9b72ba3bc43bfd332b793998a0797944bdebaf Mon Sep 17 00:00:00 2001 From: Sam Carpenter Date: Mon, 13 Jul 2020 20:27:21 -0400 Subject: [PATCH 1/9] updated sam github link --- Python/index.rst | 2 +- Python/intro.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Python/index.rst b/Python/index.rst index 1cb6cfab..f84ac32f 100644 --- a/Python/index.rst +++ b/Python/index.rst @@ -44,7 +44,7 @@ The following people made significant contributions to PLYMI, adding problems wi - AJ Federici (GitHub:`@Federici `_) - Annabelle Lew (GitHub:`@AnnabelleLew `_) - Petar Griggs (GitHub:`@petarmhg `_) -- Sam Carpenter (GitHub:`@HardBoiled800 `_) +- Sam Carpenter (GitHub:`@samaocarpenter `_) - Patrick O'Shea (GitHub:`@ArtichokeSap `_) diff --git a/Python/intro.rst b/Python/intro.rst index 97d3801e..2f443dd2 100644 --- a/Python/intro.rst +++ b/Python/intro.rst @@ -44,7 +44,7 @@ The following people made significant contributions to PLYMI, adding problems wi - AJ Federici (GitHub:`@Federici `_) - Annabelle Lew (GitHub:`@AnnabelleLew `_) - Petar Griggs (GitHub:`@petarmhg `_) -- Sam Carpenter (GitHub:`@HardBoiled800 `_) +- Sam Carpenter (GitHub:`@samaocarpenter `_) - Patrick O'Shea (GitHub:`@ArtichokeSap `_) From 91338d4634b292ec9b3ea5073004e771838e7b55 Mon Sep 17 00:00:00 2001 From: Sam Carpenter Date: Mon, 13 Jul 2020 20:48:21 -0400 Subject: [PATCH 2/9] Added section on versioning --- .../GettingStartedWithPython.md | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md b/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md index ed1f2f1a..6e1716b1 100644 --- a/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md +++ b/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md @@ -144,6 +144,36 @@ As such, Python is a language that is conducive to rapidly prototyping and testi We will be relying heavily on Python and a library for doing optimized numerical computations, called NumPy, throughout this course. + +## Keeping Up To Date + +New versions of Python come out periodically, bringing new features and fixes. +The most recent version of Python is Python 3.8.4. +Unfortunately, it takes time for packages to support new versions of Python. +As a result, many packages don't support Python 3.8, and will require you to install Python 3.7 or, in some cases, 3.6. + +All Python versions numbers use the A.B.C format. +The three numbers denote major releases, minor releases, and patches. + +- The first number denotes major releases to the language. +The most current major release is Python 3, but Python 2 is still in use. +When a major release comes out, it means that older code will not necessarily work with the new release. +Running Python 2 code in a Python 3 interpreter can yield errors, as can running Python 3 code in a Python 2 interpreter. +Python 2 is no longer supported, but the transition to Python 3 has been slow. +When reading code from the Internet, always check to make sure it uses Python 3. + +- The second number denotes a minor release. +When a minor release comes out, older code will run in the new interpreter, but new code will not necessarily be compatible with older versions. +Python 3.7 and 3.8 are great examples of this - any code that works in Python 3.7 will run in Python 3.8, but new syntax has been added that will not work in Python 3.7. + +- The third and final number denotes a patch, which generally means bug fixes and performance improvements. +All code within the same minor release will run on all other patches within that minor release - all Python 3.7.8 code is compatible with a Python 3.7.1 interpreter, and vice versa. +Patches are released fairly often, and their changes only occur 'under the hood'. + +We will be using Python 3 in this course. Python 3.7.8 is compatible with most packages while Python 3.8.4 is not yet, so if you need to use a variety of packages it is safer to stick with Python 3.7.8. Otherwise, you will have no problems switching to Python 3.8.4. + + + ## Summary - Python is a programming language - it provides us with a simple set of grammatical rules that allow us to write human-readable text, which can be translated unambiguously to instruct a computer to perform tasks. From af59e39ac97b89a0907ca8a6566bedf29a548c66 Mon Sep 17 00:00:00 2001 From: Sam Carpenter Date: Mon, 13 Jul 2020 20:52:30 -0400 Subject: [PATCH 3/9] add mention of Anaconda (also formatting) --- .../GettingStartedWithPython.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md b/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md index 6e1716b1..482a1fdb 100644 --- a/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md +++ b/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md @@ -170,7 +170,10 @@ Python 3.7 and 3.8 are great examples of this - any code that works in Python 3. All code within the same minor release will run on all other patches within that minor release - all Python 3.7.8 code is compatible with a Python 3.7.1 interpreter, and vice versa. Patches are released fairly often, and their changes only occur 'under the hood'. -We will be using Python 3 in this course. Python 3.7.8 is compatible with most packages while Python 3.8.4 is not yet, so if you need to use a variety of packages it is safer to stick with Python 3.7.8. Otherwise, you will have no problems switching to Python 3.8.4. +We will be using Python 3 in this course. +Python 3.7.8 is compatible with most packages while Python 3.8.4 is not yet, so if you need to use a variety of packages it is safer to stick with Python 3.7.8. +Otherwise, you will have no problems switching to Python 3.8.4. +Luckily, Anaconda manages compatibility for you, so you shouldn't have to worry too much about which version of Python you use as long as you occasionally check for updates. From a21d9bddec76e104bc2437d88c13cff60127d1be Mon Sep 17 00:00:00 2001 From: Sam Carpenter Date: Wed, 19 Aug 2020 21:02:48 -0400 Subject: [PATCH 4/9] addressed changes --- .../GettingStartedWithPython.md | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md b/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md index 482a1fdb..ee0d5209 100644 --- a/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md +++ b/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md @@ -148,31 +148,34 @@ We will be relying heavily on Python and a library for doing optimized numerical ## Keeping Up To Date New versions of Python come out periodically, bringing new features and fixes. -The most recent version of Python is Python 3.8.4. -Unfortunately, it takes time for packages to support new versions of Python. -As a result, many packages don't support Python 3.8, and will require you to install Python 3.7 or, in some cases, 3.6. +It's important to keep Python updated in order to make sure that you have access to the latest additions to the language. +Unfortunately, it takes time for packages to support the newest versions of Python. +As a result, it can sometimes be necessary to use older versions to maintain compatibility. -All Python versions numbers use the A.B.C format. +All Python version numbers use the A.B.C format, in accordance with [semantic versioning](https://semver.org/). The three numbers denote major releases, minor releases, and patches. - The first number denotes major releases to the language. -The most current major release is Python 3, but Python 2 is still in use. When a major release comes out, it means that older code will not necessarily work with the new release. +The most current major release is Python 3, but Python 2 is still in use. Running Python 2 code in a Python 3 interpreter can yield errors, as can running Python 3 code in a Python 2 interpreter. -Python 2 is no longer supported, but the transition to Python 3 has been slow. +Python 2 has been deprecated and should not be used, but the transition to Python 3 has been slow. When reading code from the Internet, always check to make sure it uses Python 3. - The second number denotes a minor release. -When a minor release comes out, older code will run in the new interpreter, but new code will not necessarily be compatible with older versions. -Python 3.7 and 3.8 are great examples of this - any code that works in Python 3.7 will run in Python 3.8, but new syntax has been added that will not work in Python 3.7. +When a minor release comes out, older code will run in the new interpreter, but new code will not necessarily be compatible with older versions. +For example, any code that works in Python 3.7 will run in Python 3.8, but because Python 3.8 added new syntax, code from Python 3.8 will not necessarily run in a Python 3.7 interpreter. - The third and final number denotes a patch, which generally means bug fixes and performance improvements. -All code within the same minor release will run on all other patches within that minor release - all Python 3.7.8 code is compatible with a Python 3.7.1 interpreter, and vice versa. +All code within the same minor release will run on all other patches within that minor release - for example, all Python 3.7.8 code is compatible with a Python 3.7.1 interpreter, and vice versa. Patches are released fairly often, and their changes only occur 'under the hood'. +In simpler terms, major releases are neither backward nor forward compatible. +Minor releases are backward compatible but not forward compatible, and patches are both forward and backward compatible. + We will be using Python 3 in this course. -Python 3.7.8 is compatible with most packages while Python 3.8.4 is not yet, so if you need to use a variety of packages it is safer to stick with Python 3.7.8. -Otherwise, you will have no problems switching to Python 3.8.4. +If you use a wide variety of packages, you may need to use an older minor release to ensure compatibility. +Otherwise, you should use whatever [the most current version of Python](https://www.python.org/downloads/) is. Luckily, Anaconda manages compatibility for you, so you shouldn't have to worry too much about which version of Python you use as long as you occasionally check for updates. From 16ecd1004a2f52396cf1f4de12d1c4026f41ce8a Mon Sep 17 00:00:00 2001 From: Sam Carpenter Date: Fri, 9 Oct 2020 12:39:24 -0400 Subject: [PATCH 5/9] small fixes and changes --- .../GettingStartedWithPython.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md b/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md index ee0d5209..a39053c3 100644 --- a/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md +++ b/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md @@ -156,8 +156,8 @@ All Python version numbers use the A.B.C format, in accordance with [semantic ve The three numbers denote major releases, minor releases, and patches. - The first number denotes major releases to the language. -When a major release comes out, it means that older code will not necessarily work with the new release. -The most current major release is Python 3, but Python 2 is still in use. +When a major release comes out, it means that older code will not necessarily work with the new release, and vice versa. +The most current major release is Python 3, but Python 2 is still occasionally used. Running Python 2 code in a Python 3 interpreter can yield errors, as can running Python 3 code in a Python 2 interpreter. Python 2 has been deprecated and should not be used, but the transition to Python 3 has been slow. When reading code from the Internet, always check to make sure it uses Python 3. @@ -174,7 +174,7 @@ In simpler terms, major releases are neither backward nor forward compatible. Minor releases are backward compatible but not forward compatible, and patches are both forward and backward compatible. We will be using Python 3 in this course. -If you use a wide variety of packages, you may need to use an older minor release to ensure compatibility. +If you use a wide variety of packages, you may need to use an older minor release of Python 3 to ensure compatibility. Otherwise, you should use whatever [the most current version of Python](https://www.python.org/downloads/) is. Luckily, Anaconda manages compatibility for you, so you shouldn't have to worry too much about which version of Python you use as long as you occasionally check for updates. From d18a5e230b4449cfe2c7d8fcd639258febaaf2ee Mon Sep 17 00:00:00 2001 From: Sam Carpenter Date: Wed, 20 Jan 2021 11:16:04 -0500 Subject: [PATCH 6/9] Apply suggestions from code review Co-authored-by: Ryan Soklaski --- .../GettingStartedWithPython.md | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md b/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md index a39053c3..1e7deeb4 100644 --- a/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md +++ b/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md @@ -152,31 +152,23 @@ It's important to keep Python updated in order to make sure that you have access Unfortunately, it takes time for packages to support the newest versions of Python. As a result, it can sometimes be necessary to use older versions to maintain compatibility. -All Python version numbers use the A.B.C format, in accordance with [semantic versioning](https://semver.org/). +All Python version numbers use the `A.B.C` format, in accordance with [semantic versioning](https://semver.org/). The three numbers denote major releases, minor releases, and patches. -- The first number denotes major releases to the language. +The first number denotes major releases to the language. When a major release comes out, it means that older code will not necessarily work with the new release, and vice versa. The most current major release is Python 3, but Python 2 is still occasionally used. -Running Python 2 code in a Python 3 interpreter can yield errors, as can running Python 3 code in a Python 2 interpreter. -Python 2 has been deprecated and should not be used, but the transition to Python 3 has been slow. -When reading code from the Internet, always check to make sure it uses Python 3. -- The second number denotes a minor release. +The second number denotes a minor release. When a minor release comes out, older code will run in the new interpreter, but new code will not necessarily be compatible with older versions. For example, any code that works in Python 3.7 will run in Python 3.8, but because Python 3.8 added new syntax, code from Python 3.8 will not necessarily run in a Python 3.7 interpreter. -- The third and final number denotes a patch, which generally means bug fixes and performance improvements. +The third and final number denotes a patch, which generally means bug fixes and performance improvements. All code within the same minor release will run on all other patches within that minor release - for example, all Python 3.7.8 code is compatible with a Python 3.7.1 interpreter, and vice versa. Patches are released fairly often, and their changes only occur 'under the hood'. In simpler terms, major releases are neither backward nor forward compatible. -Minor releases are backward compatible but not forward compatible, and patches are both forward and backward compatible. - -We will be using Python 3 in this course. -If you use a wide variety of packages, you may need to use an older minor release of Python 3 to ensure compatibility. -Otherwise, you should use whatever [the most current version of Python](https://www.python.org/downloads/) is. -Luckily, Anaconda manages compatibility for you, so you shouldn't have to worry too much about which version of Python you use as long as you occasionally check for updates. +Minor releases are forward compatible but not necessarily fully backward compatible, and patches are both forward and backward compatible. From e54ce732af2a1015c8734e56e69581de70f1d453 Mon Sep 17 00:00:00 2001 From: Sam Carpenter Date: Wed, 20 Jan 2021 11:16:25 -0500 Subject: [PATCH 7/9] Update Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md Co-authored-by: Ryan Soklaski --- .../GettingStartedWithPython.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md b/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md index 1e7deeb4..a518ef07 100644 --- a/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md +++ b/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md @@ -157,7 +157,8 @@ The three numbers denote major releases, minor releases, and patches. The first number denotes major releases to the language. When a major release comes out, it means that older code will not necessarily work with the new release, and vice versa. -The most current major release is Python 3, but Python 2 is still occasionally used. +The most current major release is Python 3; Python 2 is no longer supported by any bug or security fixes. +All releases in the near future will be improvements to Python 3, and thus they will come in the form of minor releases and patches. The second number denotes a minor release. When a minor release comes out, older code will run in the new interpreter, but new code will not necessarily be compatible with older versions. From 47f50ca7f2d0ce06dd1daa334a5f0b1f9db3bb6d Mon Sep 17 00:00:00 2001 From: Sam Carpenter Date: Wed, 20 Jan 2021 11:23:41 -0500 Subject: [PATCH 8/9] clarified compatability --- .../GettingStartedWithPython.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md b/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md index a518ef07..f536a344 100644 --- a/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md +++ b/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md @@ -149,8 +149,6 @@ We will be relying heavily on Python and a library for doing optimized numerical New versions of Python come out periodically, bringing new features and fixes. It's important to keep Python updated in order to make sure that you have access to the latest additions to the language. -Unfortunately, it takes time for packages to support the newest versions of Python. -As a result, it can sometimes be necessary to use older versions to maintain compatibility. All Python version numbers use the `A.B.C` format, in accordance with [semantic versioning](https://semver.org/). The three numbers denote major releases, minor releases, and patches. @@ -171,6 +169,10 @@ Patches are released fairly often, and their changes only occur 'under the hood' In simpler terms, major releases are neither backward nor forward compatible. Minor releases are forward compatible but not necessarily fully backward compatible, and patches are both forward and backward compatible. +Unfortunately, it takes time for packages to support the newest versions of Python. +As a result, it can sometimes be necessary to use older versions to maintain compatibility. +Anaconda will manage package compatability for you most of the time, but be careful not to mix incompatible libraries. + ## Summary From 865fc68ce133b7dbaa318141f1cbd391bdab6636 Mon Sep 17 00:00:00 2001 From: Sam Carpenter Date: Fri, 22 Jan 2021 23:42:40 -0500 Subject: [PATCH 9/9] Update Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md Co-authored-by: Ryan Soklaski --- .../GettingStartedWithPython.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md b/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md index f536a344..be83348d 100644 --- a/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md +++ b/Python/Module1_GettingStartedWithPython/GettingStartedWithPython.md @@ -169,10 +169,6 @@ Patches are released fairly often, and their changes only occur 'under the hood' In simpler terms, major releases are neither backward nor forward compatible. Minor releases are forward compatible but not necessarily fully backward compatible, and patches are both forward and backward compatible. -Unfortunately, it takes time for packages to support the newest versions of Python. -As a result, it can sometimes be necessary to use older versions to maintain compatibility. -Anaconda will manage package compatability for you most of the time, but be careful not to mix incompatible libraries. - ## Summary