1. Python Other
  2. PyPi - Python Package Index
    1. What is PyPi?
    2. pip
    3. Configure pip on Windows to avoid SSL issues
    4. Upgrade pip
    5. Upgrade PIP on Windows
    6. PYTHONPATH
    7. Requirements
    8. Virtualenv
  3. Python Web server
    1. Hello world web
    2. Dump web environment info
    3. Web echo
    4. Web form
    5. Resources
  4. Networking
    1. Secure shell
    2. ssh
    3. ssh from Windows
    4. Parallel ssh
    5. telnet
    6. prompt for password
    7. ftp
  5. Interactive shell
    1. The Python interactive shell
    2. REPL - Read Evaluate Print Loop
    3. Using Modules
    4. Getting help
    5. Exercise: Interactive shell
  6. Advanced lists
    1. Change list while looping: endless list
    2. Change list while looping
    3. Copy list before iteration
    4. for with flag
    5. for else
    6. enumerate
    7. do while
    8. list slice is copy
  7. Warnings
    1. Warnings
  8. Tox
    1. Tox Examples
  9. Selenium
    1. Selenium installation
    2. Get started with Selenium
    3. Selenium Headless Screenshot
  10. Playwright
    1. Playwright installation
    2. Playwright demo
    3. Playwright screenshot
  11. Advancted functions
    1. Variable scopes
    2. Name resolution order (LEGB)
    3. Scoping: global seen from fuction
    4. Assignment creates local scope
    5. Local scope gone wrong
    6. Changing global variable from a function
    7. Global variables mutable in functions
    8. Scoping issues
    9. sub in sub
    10. Scoping sub in sub (enclosing scope)
    11. Function objects
    12. Functions are created at run time
    13. Mutable default
    14. Use None as default parameter
    15. Inner function created every time the outer function runs
    16. Static variable
    17. Static variable in generated function
    18. Inspect
  12. Variable number of function arguments
    1. Python function arguments - a reminder
    2. Functions with unknown number of argumerns
    3. Variable length argument list with * and **
    4. Passing arguments as they were received (but incorrectly)
    5. Unpacking args before passing them on
    6. Exercise: implement the my_sum function
    7. Solution: implement the my_sum function
    8. Exercise: implement the reduce function
    9. Soluton: implement the reduce function
    10. Exercise: sort pairs
    11. Solution: sort pairs
  13. Python Packages
    1. Why Create package
    2. Create package
    3. Internal usage
    4. use module in package - relative path
    5. use package (does not work)
    6. package importing (and exporting) module
    7. use package (module) with import
    8. use package with import
    9. Creating an installable Python package
    10. Create tar.gz file
    11. Install Package
    12. Dependencies
    13. Add README file
    14. Add README file (setup.py)
    15. Include executables
    16. Add tests
    17. Add tests calc
    18. Add tests all
    19. setup.py
    20. Run tests and create package
    21. Exercise: package
    22. Exercise: create executable
  14. Distribution of Python code
    1. Distribution demo 1
    2. Distribution demo 2
    3. Distribution demo 3
  15. Distribute Python application as an exe
    1. Packaging applications (creating executable binaries)
    2. Using PyInstaller
    3. Other PyInstaller examples
    4. Other
    5. Py2app for Mac
  16. Ctypes
    1. ctypes - hello
    2. concat
    3. links
  17. 2to3
    1. Convertig from Python 2 to Python 3
    2. division
    3. print in Python 2
    4. print in Python 3
    5. input and raw_input
    6. Code that works on both 2 and 3
    7. Compare different types
    8. Octal numbers
    9. 2to3 Resources
  18. Design Patterns
    1. What are Design Patterns?
    2. Don't replace built-in objects
    3. Facade - simple interface to complex system
    4. Monkey Patching
    5. Creation DPs "Just One"
    6. Singleton
    7. Monostate (Borg)
    8. Dispatch table
  19. Python Pitfalls
    1. Reuse of existing module name
    2. Use the same name more than once
    3. Compare string and number
    4. Compare different types
    5. Sort mixed data
  20. Linters
    1. Static Code Analyzis - Linters
    2. PEP8
    3. F811 - redefinition of unused
    4. Warn when Redefining functions
  21. Signals
    1. Signals and Python
    2. Sending Signal
    3. Catching Signal
    4. Catching Ctrl-C on Unix
    5. Catching Ctrl-C on Unix confirm
    6. Alarm signal and timeouts
    7. Exercise: Catching Ctrl-C on Unix 2nd time
    8. Exercise: Signals
    9. Ctrl-z
  22. Data Science
    1. Data Scince Resources
  23. FAQ
    1. How not to name example scirpts?
    2. Platform independent code
    3. How to profile a python code to find causes of slowness?
    4. pdb = Python Debugger
    5. Avoid Redefining functions
  24. Algorithm
    1. Exercise: Find the odd value
    2. Solution: Find the odd value
    3. Exercise: Generalized find the odd value
    4. Solution: Generlized Find the odd value
    5. Exercise: Shortest sublist with sum over limit
    6. Solution: Shortest sublist with sum over limit
  25. Refactor
    1. Refactoring example - change variable name
    2. How to Refactor
    3. Exercise: Fix deep indentation
  26. Overview of Python syntax
    1. Scalars
    2. Numbers
    3. Strings
    4. int - float - string conversion
    5. Booleans
    6. Lists
    7. Queue and Stack
    8. Dictionaries
    9. Tuples
    10. Sets
    11. I/O
    12. STDIN - Standard input
    13. CLI
    14. Control flow
    15. While - Loops
    16. For - Loops
    17. Conditionals
    18. Comparision operators
    19. Boolean operators
    20. The conditional (ternary) operator
    21. Random Values
    22. Math
    23. Exceptions
    24. Files
    25. Functions
    26. Modules
  27. Serialization (Marshalling)
    1. Why Serialization is needed?
    2. Questions to ask
    3. Various tools for serialization
    4. Serialization with h5py
    5. Serialization of single Numpy array
    6. Serialization of multiple Numpy arrays
  28. Other slides
    1. Other slides
    2. Atom for Python
    3. IDLE - Integrated DeveLopment Environment
    4. sh-bang - executable on Linux/Apple
    5. pydoc
    6. Spyder Intro
    7. Interactive Debugging
    8. Parameter passing
    9. Command line arguments and main
    10. Name of the current function in Python
    11. Name of the caller function in Python
    12. Stack trace in Python using inspect
    13. Getting the class name of an object
    14. Circular references
    15. Context managers: with (file) experiments
    16. range vs xrange in Python
    17. profile (with hotshot) slow code
    18. Python Descriptors
    19. Python from .NET
    20. Matplotlib subplot
    21. Jupyter StackOverflow - historgram
    22. Jupyter StackOverflow - OpenSourcer
    23. Jupyter StackOverflow - cross tabulation
    24. Jupyter StackOverflow - salaries
    25. Jupyter StackOverflow - replace values
    26. NameError
    27. UnboundLocalError
    28. Insert element in sorted list using bisect
    29. Gravatar in Python
    30. Debug with ptpython
    31. REPL - Interactive debugging with ptpython
    32. Print in color on the CLI
    33. Easy Install
    34. sorting with sorted using a key
    35. get and set locale
    36. Modify time anomality
    37. Some strange code
    38. is vs ==
    39. print_function
    40. Dividers (no break or continue)
    41. Remove file
    42. Modules: more
    43. import hooks
    44. Python resources
    45. Progress bar
    46. from __future__
    47. Variable scope
    48. scope
    49. type
    50. Look deeper in a list
    51. More examples