Training agenda
- FUNCTIONAL PROGRAMMING
- * args & ** kwargs
- Unpacking arguments and collections
- Function as parameter (First class citizen)
- Lambda functions (Anonymous)
- List comprehensions, dictionary comprehensions, etc … – advanced
- Nested list and dictionary comprehensions, etc …
- ITERTOOLS module – overview
- FUNCTOOLS module – overview
- Generators and iterators (different ways to define)
- Decorator pattern – create your own decorators (simple decorator)
- OOP PROGRAMMING – ADVANCED LEVEL
- Documenting the code
- Class attributes
- Multi-inheritance and Method Resolution Order
- Super method
- Access to attributes, private attributes
- Descriptors and defining properties (__get__, __set__, __delete__, __set_name__)
- __getitem__, __setitem__, __delitem__
- Implementation of iterability for classes
- Operator overloading
- Abstract classes – basic issues
- Class decorators with arguments
- Metaclasses – basic issues
- USEFUL TOOLS
- Type annotations (hints) – information and application example
- TIMEIT module – examples (comparison of the execution time of algorithms)
- LOGGING module – event logging (configuration and application)
- OS module – revision and additional information
- SYS module – revision and additional information
- Interaction with the operating system and file system – SYS and OS modules
- COLLECTIONS module – an extension of built-in complex types
- NamedTuple
- DataClass
- DefaultDict
- Deque
- Counter
- REGULAR EXPRESSIONS – RE module:
- Syntax – symbols, structure of regular expressions
- match & search functions
- findall & finditer functions
- Pattern object
- Match object
- sub & split functions
- DOTALL & MULTILINE flags
- Online tools for creating regular expressions (e.g. regex101 and Pythex)
- DATA PROCESSING
- REQUESTS – HTTP protocol module (basic information and requests from Python)
- BEAUTIFUL SOUP – WebScrapping (XML & HTML) module (example of use in searching hypertext documents)
- PARAMIKO module – SSH connections (application example)
- JSON, YAML, PICKLE – practical use
- Introduction to Pandas (reading and writing XLS, CSV, etc …)
- Review of other libraries
- DATABASE
- Overview of popular "Connectors" for relational databases – based on connections with MYSQL / PostgreSQL / ORACLE or other selected engine
- Query handling from Python – basic queries
- Connection with non-relational databases – on the example of PYMONGO (MongoDB)
- ORM on the example of SQLAlchemy
- THREADS AND PROCESSES: THREADING module basic concepts:
- Launching threads
- Thread synchronization
- Rlocks
- Semaphores
- GIL (Global Interpreter Lock)
- MULTIPROCESSING module – basic concepts:
- Processes, queues, locks
- Pools
- Daemons
- Data exchange between processes
- ASYNCHRONOUS PYTHON – Introduction and basics
- ASYNCIO module – overview of the basic issues
- Coroutines, tasks
- Streams
- Subprocesses
- Queues
- Exceptions
- Event Loop
- Futures
- Asynchronous (Non-Blocking) HTTP Calls
- INTRODUCTION TO THE TESTS
- Unit tests
- ]Introduction to TDD
- Unittest library
- Review of other libraries
- ADDITIONALLY:
- Other libraries selected together with course participants