- 1. Python Other
- 2. PyPi - Python Package Index
- 2.1. What is PyPi?
- 2.2. pip
- 2.3. Configure pip on Windows to avoid SSL issues
- 2.4. Upgrade pip
- 2.5. Upgrade PIP on Windows
- 2.6. PYTHONPATH
- 2.7. Requirements
- 2.8. Virtualenv
- 3. Python Web server
- 3.1. Hello world web
- 3.2. Dump web environment info
- 3.3. Web echo
- 3.4. Web form
- 3.5. Resources
- 4. Networking
- 4.1. Secure shell
- 4.2. ssh
- 4.3. ssh from Windows
- 4.4. Parallel ssh
- 4.5. telnet
- 4.6. prompt for password
- 4.7. ftp
- 5. Interactive shell
- 5.1. The Python interactive shell
- 5.2. REPL - Read Evaluate Print Loop
- 5.3. Using Modules
- 5.4. Getting help
- 5.5. Exercise: Interactive shell
- 6. Advanced lists
- 6.1. Change list while looping: endless list
- 6.2. Change list while looping
- 6.3. Copy list before iteration
- 6.4. for with flag
- 6.5. for else
- 6.6. enumerate
- 6.7. do while
- 6.8. list slice is copy
- 7. Warnings
- 7.1. Warnings
- 8. Tox
- 8.1. Tox Examples
- 9. Selenium
- 9.1. Selenium installation
- 9.2. Get started with Selenium
- 9.3. Selenium Headless Screenshot
- 10. Playwright
- 10.1. Playwright installation
- 10.2. Playwright demo
- 10.3. Playwright screenshot
- 11. Advancted functions
- 11.1. Variable scopes
- 11.2. Name resolution order (LEGB)
- 11.3. Scoping: global seen from fuction
- 11.4. Assignment creates local scope
- 11.5. Local scope gone wrong
- 11.6. Changing global variable from a function
- 11.7. Global variables mutable in functions
- 11.8. Scoping issues
- 11.9. sub in sub
- 11.10. Scoping sub in sub (enclosing scope)
- 11.11. Function objects
- 11.12. Functions are created at run time
- 11.13. Mutable default
- 11.14. Use None as default parameter
- 11.15. Inner function created every time the outer function runs
- 11.16. Static variable
- 11.17. Static variable in generated function
- 11.18. Inspect
- 12. Variable number of function arguments
- 12.1. Python function arguments - a reminder
- 12.2. Functions with unknown number of argumerns
- 12.3. Variable length argument list with * and **
- 12.4. Passing arguments as they were received (but incorrectly)
- 12.5. Unpacking args before passing them on
- 12.6. Exercise: implement the my_sum function
- 12.7. Solution: implement the my_sum function
- 12.8. Exercise: implement the reduce function
- 12.9. Soluton: implement the reduce function
- 12.10. Exercise: sort pairs
- 12.11. Solution: sort pairs
- 13. Python Packages
- 13.1. Why Create package
- 13.2. Create package
- 13.3. Internal usage
- 13.4. use module in package - relative path
- 13.5. use package (does not work)
- 13.6. package importing (and exporting) module
- 13.7. use package (module) with import
- 13.8. use package with import
- 13.9. Creating an installable Python package
- 13.10. Create tar.gz file
- 13.11. Install Package
- 13.12. Dependencies
- 13.13. Add README file
- 13.14. Add README file (setup.py)
- 13.15. Include executables
- 13.16. Add tests
- 13.17. Add tests calc
- 13.18. Add tests all
- 13.19. setup.py
- 13.20. Run tests and create package
- 13.21. Exercise: package
- 13.22. Exercise: create executable
- 14. Distribution of Python code
- 14.1. Distribution demo 1
- 14.2. Distribution demo 2
- 14.3. Distribution demo 3
- 15. Distribute Python application as an exe
- 15.1. Packaging applications (creating executable binaries)
- 15.2. Using PyInstaller
- 15.3. Other PyInstaller examples
- 15.4. Other
- 15.5. Py2app for Mac
- 16. Ctypes
- 16.1. ctypes - hello
- 16.2. concat
- 16.3. links
- 17. 2to3
- 17.1. Convertig from Python 2 to Python 3
- 17.2. division
- 17.3. print in Python 2
- 17.4. print in Python 3
- 17.5. input and raw_input
- 17.6. Code that works on both 2 and 3
- 17.7. Compare different types
- 17.8. Octal numbers
- 17.9. 2to3 Resources
- 18. Design Patterns
- 18.1. What are Design Patterns?
- 18.2. Don't replace built-in objects
- 18.3. Facade - simple interface to complex system
- 18.4. Monkey Patching
- 18.5. Creation DPs "Just One"
- 18.6. Singleton
- 18.7. Monostate (Borg)
- 18.8. Dispatch table
- 19. Python Pitfalls
- 19.1. Reuse of existing module name
- 19.2. Use the same name more than once
- 19.3. Compare string and number
- 19.4. Compare different types
- 19.5. Sort mixed data
- 20. Linters
- 20.1. Static Code Analyzis - Linters
- 20.2. PEP8
- 20.3. F811 - redefinition of unused
- 20.4. Warn when Redefining functions
- 21. Signals
- 21.1. Signals and Python
- 21.2. Sending Signal
- 21.3. Catching Signal
- 21.4. Catching Ctrl-C on Unix
- 21.5. Catching Ctrl-C on Unix confirm
- 21.6. Alarm signal and timeouts
- 21.7. Exercise: Catching Ctrl-C on Unix 2nd time
- 21.8. Exercise: Signals
- 21.9. Ctrl-z
- 22. Data Science
- 22.1. Data Scince Resources
- 23. FAQ
- 23.1. How not to name example scirpts?
- 23.2. Platform independent code
- 23.3. How to profile a python code to find causes of slowness?
- 23.4. pdb = Python Debugger
- 23.5. Avoid Redefining functions
- 24. Algorithm
- 24.1. Exercise: Find the odd value
- 24.2. Solution: Find the odd value
- 24.3. Exercise: Generalized find the odd value
- 24.4. Solution: Generlized Find the odd value
- 24.5. Exercise: Shortest sublist with sum over limit
- 24.6. Solution: Shortest sublist with sum over limit
- 25. Refactor
- 25.1. Refactoring example - change variable name
- 25.2. How to Refactor
- 25.3. Exercise: Fix deep indentation
- 26. Overview of Python syntax
- 26.1. Scalars
- 26.2. Numbers
- 26.3. Strings
- 26.4. int - float - string conversion
- 26.5. Booleans
- 26.6. Lists
- 26.7. Queue and Stack
- 26.8. Dictionaries
- 26.9. Tuples
- 26.10. Sets
- 26.11. I/O
- 26.12. STDIN - Standard input
- 26.13. CLI
- 26.14. Control flow
- 26.15. While - Loops
- 26.16. For - Loops
- 26.17. Conditionals
- 26.18. Comparision operators
- 26.19. Boolean operators
- 26.20. The conditional (ternary) operator
- 26.21. Random Values
- 26.22. Math
- 26.23. Exceptions
- 26.24. Files
- 26.25. Functions
- 26.26. Modules
- 27. Serialization (Marshalling)
- 27.1. Why Serialization is needed?
- 27.2. Questions to ask
- 27.3. Various tools for serialization
- 27.4. Serialization with h5py
- 27.5. Serialization of single Numpy array
- 27.6. Serialization of multiple Numpy arrays
- 28. Other slides
- 28.1. Other slides
- 28.2. Atom for Python
- 28.3. IDLE - Integrated DeveLopment Environment
- 28.4. sh-bang - executable on Linux/Apple
- 28.5. pydoc
- 28.6. Spyder Intro
- 28.7. Interactive Debugging
- 28.8. Parameter passing
- 28.9. Command line arguments and main
- 28.10. Name of the current function in Python
- 28.11. Name of the caller function in Python
- 28.12. Stack trace in Python using inspect
- 28.13. Getting the class name of an object
- 28.14. Circular references
- 28.15. Context managers: with (file) experiments
- 28.16. range vs xrange in Python
- 28.17. profile (with hotshot) slow code
- 28.18. Python Descriptors
- 28.19. Python from .NET
- 28.20. Matplotlib subplot
- 28.21. Jupyter StackOverflow - historgram
- 28.22. Jupyter StackOverflow - OpenSourcer
- 28.23. Jupyter StackOverflow - cross tabulation
- 28.24. Jupyter StackOverflow - salaries
- 28.25. Jupyter StackOverflow - replace values
- 28.26. NameError
- 28.27. UnboundLocalError
- 28.28. Insert element in sorted list using bisect
- 28.29. Gravatar in Python
- 28.30. Debug with ptpython
- 28.31. REPL - Interactive debugging with ptpython
- 28.32. Print in color on the CLI
- 28.33. Easy Install
- 28.34. sorting with sorted using a key
- 28.35. get and set locale
- 28.36. Modify time anomality
- 28.37. Some strange code
- 28.38. is vs ==
- 28.39. print_function
- 28.40. Dividers (no break or continue)
- 28.41. Remove file
- 28.42. Modules: more
- 28.43. import hooks
- 28.44. Python resources
- 28.45. Progress bar
- 28.46. from __future__
- 28.47. Variable scope
- 28.48. scope
- 28.49. type
- 28.50. Look deeper in a list
- 28.51. More examples