- Introduction- History of Python- Origins and development by Guido van Rossum (1989–1991)
- Evolution from Python 1.x → 2.x → 3.x
- Design philosophy (PEP 20 — The Zen of Python)
- Open source governance and the Python Software Foundation (PSF)
- Python Enhancement Proposals (PEPs) and community process
- Major milestones (Unicode, async, typing, pattern matching)
 
- Python Versions and Compatibility- Python 2 vs Python 3 differences and migration
- Maintenance and end-of-life policies
- Long-term support (LTS) versions
- Semantic versioning and release cadence
- Version detection (sys.version,platform.python_version())
- Backward and forward compatibility (PEP 563, PEP 585)
 
- Installing Python- Official installers (python.org, Microsoft Store, Homebrew, apt, dnf)
- Platform-specific installation (Windows, macOS, Linux)
- Source builds and configuration options
- Multiple Python versions and environment isolation
- Verifying installation and PATH configuration
- Package managers (apt,brew,choco,scoop)
- Alternative distributions (Anaconda,Miniconda,ActivePython)
 
- Running Python Scripts and REPL- REPL basics (python,python -i,exit())
- Script execution (python script.py,python -m module)
- Interactive debugging and inspection (help(),dir())
- Command-line flags and options (-O,-B,-m,-X)
- Shell integration (ipython,bpython,ptpython)
- Jupyter notebooks and interactive kernels
- Input/output redirection and pipes
 
- REPL basics (
- IDEs and Code Editors- Full IDEs (PyCharm,VS Code,Spyder,Thonny)
- Lightweight editors (Sublime Text,Atom,Vim,Emacs)
- REPL integration and interactive terminals
- Code completion and IntelliSense
- Linters and formatters integration
- Debugging tools and breakpoints
- Notebooks and mixed-language environments (Jupyter,Colab)
 
- Full IDEs (
- Virtual Environments- Environment creation (venv,virtualenv)
- Activation and deactivation
- Project isolation and dependency management
- Environment configuration files (pyvenv.cfg)
- Integration with editors and build tools
- Cross-platform management (conda,tox,nox)
- Reproducibility and sharing (requirements.txt,lockfiles)
 
- Environment creation (
- Package Management (pip)- Installing, upgrading, uninstalling packages (pip install)
- Requirements files (requirements.txt, constraints)
- Package discovery and search (pip search,pip index)
- Local and editable installs (pip install -e)
- Dependency resolution (pip check,pipdeptree)
- Source distributions vs wheels
- Virtual environment integration
- Caching and offline installs (pip download,pip cache)
- Custom indexes and mirrors (--index-url,--extra-index-url)
- Package auditing and signing (pip-audit,hash-checking-mode)
 
- Installing, upgrading, uninstalling packages (
 
- History of Python
- Fundamentals- Basic Data Types- Variables and assignments- Declaration and initialization
- Dynamic typing and rebinding
- Variable lifetime and scope
 
- Booleans (bool, logical evaluation rules)
- Numeric types- int(arbitrary precision, base conversions)
- float,- decimal,- fractions
- complex(real/imaginary parts, polar form)
 
- Strings, multiline strings, raw strings- String creation and immutability
- Indexing, slicing, concatenation, repetition
- f-strings, interpolation, and formatting
- Unicode handling and encoding basics
 
- Objects and mutability- Identity vs equality (isvs==)
- Mutable vs immutable built-ins
- Copy semantics (copy,deepcopy)
 
- Identity vs equality (
- Noneand sentinel values- Null semantics and truthiness
- Sentinel patterns for optional behavior
 
- Hashables and immutability- Requirements for dict/set keys
- Custom hash implementation (__hash__,__eq__)
 
- Type conversion and coercion- Implicit vs explicit casting
- Numeric promotions
- Common built-ins (int(),float(),str(), etc.)
 
 
- Variables and assignments
- Operators- Arithmetic (+,-,*,/,//,%, ``)
- Comparison (==,!=,<,>,<=,>=)
- Logical (and,or,not)
- Bitwise (&,|,^,~,<<,>>)
- Identity (is,is not)
- Membership (in,not in)
- Assignment and augmented assignment (+=,-=, etc.)
- Walrus operator (:=, PEP 572)
- operatormodule (functional forms of ops)
- delstatement (object deletion and reference removal)
- Operator precedence and associativity
- Short-circuit evaluation behavior
 
- Arithmetic (
- Control Flow- Conditionals (if,elif,else)
- Loops (for,while,for-else,while-else)
- Control statements (pass,continue,break)
- match/ structural pattern matching (PEP 634–636)- Literal, sequence, mapping, and class patterns
- OR-patterns and guards (ifclauses)
 
- Loop control flags and sentinel conditions
 
- Conditionals (
- Functions- Namespaces and variable lookup rules
- Scopes: local, global, nonlocal
- Function definition and return semantics
- Default argument values and evaluation timing
- Keyword and positional arguments
- Special parameters (*args,kwargs,/,*)
- Argument unpacking (iterables and mappings)
- Lambda and anonymous functions
- Function attributes (__name__,__doc__,__defaults__,__annotations__)
- Closures and free variables
- Higher-order functions and decorators (intro)
- Callable objects and partial application
 
- Exceptions- try,- except,- else,- finallyblocks
- raiseand re-raising
- Custom exceptions (inheritance from Exception)
- Exception chaining (raise … from …)
- Exception groups (PEP 654)
- Exception notes (add_note)
- Context and traceback objects (sys.exc_info,traceback)
- Common built-in exceptions (ValueError,TypeError, etc.)
- Suppressing exceptions (contextlib.suppress)
 
- Builtins- Keywords (keywordmodule)
- Built-in functions (len,range,map,filter, etc.)
- Constants- True,- False,- None
- NotImplemented
- Ellipsis(- ...)
- __debug__
 
- Built-in types (int,float,str,list,dict, etc.)
- Built-in exceptions (hierarchy and usage)
- Standard type hierarchy and object model
 
- Keywords (
- Modules- Import system (absolute, relative, from,*, aliasing)
- Search paths and environment (sys.path,PYTHONPATH)
- Module inspection (dir,help,vars,globals,locals)
- Basic standard modules- math,- cmath
- random
- os,- pathlib
- sys
- datetime,- time
- functools,- itertools
- json,- re,- collections
 
 
- Import system (absolute, relative, 
 
- Basic Data Types
- Structures and data manipulation- Data Structures- Lists- Creation and initialization
- Indexing and slicing
- Mutability and in-place operations
- Methods (append,extend,insert,pop,remove,clear)
- Sorting (sort,sorted, key functions, stability)
- Membership and iteration
- Copying and references
 
- Stacks (list,collections.deque)- LIFO principle
- Push/pop operations
 
- Queues (queue.Queue,collections.deque)- FIFO principle
- Thread-safe queues (queue,multiprocessing.Queue)
 
- Deques (collections.deque)- Bidirectional operations
- Rotation and indexing
- Thread safety
 
- Tuples- Immutability and performance
- Named tuples (collections.namedtuple,typing.NamedTuple)
- Tuple packing and unpacking
 
- Sets- Unique element storage
- Set operations (union, intersection, difference, symmetric difference)
- Frozen sets
- Membership and comprehensions
 
- Dicts and mappings- Key-value pairs
- Dictionary methods (get,pop,update,items,keys,values)
- Dictionary views and iterators
- Default dicts (collections.defaultdict)
- OrderedDict, ChainMap, Counter
- Dictionary comprehensions
 
- Unpacking and extended unpacking- Parallel assignment
- *and `` unpacking in function calls and literals
 
- Comparison between data structures- Performance considerations (lookup, insertion, order)
- Mutability, hashability, and ordering
 
- Copying and views
- Shallow vs deep copy
- copymodule
- Views (dict.items(),setviews)
 
- Lists
- Iterators and Generators- Sequences and iteration protocol
- Iterator vs iterable
- Built-in functions: iter,next,len,reversed
- Custom iterators (__iter__,__next__)
- Generators and yield,yield from
- Generator expressions and lazy sequences
- Infinite iterators (itertools.count,cycle,repeat)
- Slices (slice,itertools.islice)
- Lazy evaluation and memory efficiency
- Generator cleanup and StopIteration
 
- Comprehensions- List comprehensions
- Set comprehensions
- Dict comprehensions
- Nested comprehensions
- Conditional comprehensions (ifandif-else)
- Generator expressions vs comprehensions
- Performance and readability trade-offs
 
- String Manipulation- String operations- Concatenation (+)
- Multiplication (*)
- Membership (in,not in)
- Slicing and indexing
 
- Concatenation (
- Formatting and interpolation- f-strings
- .format()
- Old-style %formatting
- string.Template
 
- String methods (split,join,replace,strip,startswith,endswith)
- Bytes and bytearrays (bytes,bytearray, encoding/decoding)
- Format specification mini-language
- Utilities (textwrap,string,re,difflib)
- Unicode and encodings- unicodedata, normalization (NFC, NFD, NFKC, NFKD)
- UTF-8, UTF-16, Latin-1, etc.
 
- uuidmodule
- Advanced operations (str.translate,maketrans, case folding)
 
- String operations
- Regular Expressions- resyntax (groups, lookahead, lookbehind, backreferences)
- Flags (IGNORECASE,MULTILINE,DOTALL,VERBOSE)
- remodule methods (- search,- match,- findall,- split,- sub,- compile)
- Regex objects and performance
- Third-party regexmodule (Unicode categories, recursion, timeouts)
- Comparison with parsing libraries- fnmatchand- glob
- parse
- shlexand- tokenize
- stringmethods vs regex trade-offs
 
 
- Files- File system access- pathlib(modern path interface)
- osand- os.path
- File existence, metadata, and permissions (stat)
 
- File I/O operations- open,- close,- read,- write,- append,- seek
- Context managers (with)
- Binary vs text modes
 
- Basic file formats- .ini/ config (- configparser)
- .env(dotenv libraries)
- .toml(- tomllib,- tomli,- tomlkit)
- .csv(- csv,- pandas)
- .json(- json,- orjson,- ujson)
- .sqlite3(SQL databases)
 
- Serialization- struct(binary data)
- codecs
- pickle,- dill,- cloudpickle
- marshal
- base64,- binascii
 
- Temporary files (tempfile)
- Compression and archiving- zip/deflate (zipfile)
- gzip
- bzip2
- lzma/lzma2
- lz4
- xz
- zstd
- tar (tarfile)
 
- zip/deflate (
- File permissions and metadata (os.stat,chmod,access)
- Binary file handling (struct,memoryview,array)
 
- File system access
- Specific Files- Markup- HTML (html,html.parser,BeautifulSoup)
- XML (xml.etree.ElementTree,lxml)
 
- HTML (
- Document and ebook- PDF (PyPDF2,fitz)
- DOCX (python-docx)
- EPUB (ebooklib)
 
- PDF (
- Calendar and scheduling- ICS (ics,icalendar)
- CSV-based planners
 
- ICS (
- Mailing and messaging- email,- smtplib,- imaplib
- eml,- msgparsing
 
- Image processing- PIL/Pillow
- OpenCV
- imageio,- matplotlibfor I/O
 
- Audio processing- wave,- aifc,- sunau
- pydub,- audioread,- soundfile
 
- Video handling- cv2
- moviepy
- ffmpeg-python
 
- Security and cryptography- ssl,- hashlib,- secrets,- hmac
- Certificate and key handling
 
- Geographic and spatial data- GeoJSON
- shapefile,- fiona,- shapely,- geopandas
 
 
- Markup
- Time and Date- datetimeand- timemodules
- calendarmodule
- Time zones (zoneinfo,pytz)
- Time arithmetic (timedelta, rounding, truncation)
- Parsing and formatting dates (strptime,strftime,dateutil)
- High-resolution timers (time.perf_counter,process_time,monotonic)
- Scheduling and delays (sleep,sched,asyncio.sleep)
- Measuring performance (timeit,perf_counter_ns)
- Timestamp conversion and epoch time
 
 
- Data Structures
- Structured and Modular Programming- Object-Oriented Programming (OOP)- Classes and objects- Defining and instantiating classes
- The __init__and__new__methods
- The object model and __class__attribute
 
- Attributes and methods- Class vs instance attributes
- Attribute lookup order and MRO
- Attribute hiding and naming conventions (_,__)
- Dynamic access (getattr,setattr,delattr,hasattr)
 
- Encapsulation and abstraction- Private vs public members (naming conventions)
- Getters, setters, and deleters (@property)
- Read-only attributes
 
- Inheritance- Single and multiple inheritance
- super()and cooperative MRO
- Method overriding and extension
- Abstract base classes (abcmodule)
- Mixins and shared behavior
- Composition vs inheritance
 
- Class mechanics- __slots__and memory optimization
- Metaclasses and dynamic class creation
- type()and runtime class manipulation
- typesmodule utilities
 
- Special / magic / dunder methods- __repr__,- __str__,- __len__,- __getitem__, etc.
- Operator overloading (__add__,__eq__, etc.)
- Context management (__enter__,__exit__)
- Callable objects (__call__)
- Iteration protocols (__iter__,__next__)
 
- Advanced typing and design- Generics and typing.Generic
- Protocols (PEP 544)
- Covariance and contravariance
- Duck typing and structural subtyping
- Casting (typing.cast)
 
- Generics and 
- Utilities and modern OOP helpers- dataclasses(auto-generated methods, immutability)
- attrs(third-party library)
- pydantic(data validation models)
- enum(enumerations and flag enums)
- collections.abc(interfaces for containers)
 
 
- Classes and objects
- Decorators- Function decorators- Basic decorator syntax
- Multiple decorators
- @staticmethod,- @classmethod,- @property
 
- Class decorators- Decorating entire classes
- Injecting attributes or methods dynamically
 
- Parameterized decorators- Nested closures for arguments
- Factory pattern for decorators
 
- functools.wraps- Preserving metadata (__name__,__doc__)
- Common pitfalls and best practices
 
- Preserving metadata (
- Practical applications- Logging and timing
- Memoization (functools.lru_cache)
- Access control and validation
- Class registration and plugin systems
 
 
- Function decorators
- Modules (advanced)- Packages and __init__.py- Namespace packages (PEP 420)
- Relative and absolute imports
- Module-level constants and configuration
 
- Standard modules (extended list)- Input/output (io,os,pathlib,shutil)
- Argument parsing (argparse,getopt,sys.argv)
- Mathematical utilities (math,cmath,statistics)
- Data structures (collections,collections.abc,array,enum)
- Memory and performance (copy,sys,resource)
- Console utilities (curses,readline)
 
- Input/output (
- CLI modules- sys,- argparse,- getopt
- Subcommands and command dispatchers
- CLI design patterns (subparsers, help messages)
 
- Import system internals- importliband module reloading
- sys.meta_path, loaders and finders
- Module caching and sys.modules
- Dynamic imports (__import__,importlib.import_module)
- Executing packages as scripts (python -m)
 
 
- Packages and 
- Logging- loggingmodule fundamentals- Logger hierarchy and propagation
- Logging levels (DEBUG,INFO,WARNING,ERROR,CRITICAL)
- Handlers, formatters, filters
- Configuration (basicConfig, dictConfig, fileConfig)
- Custom loggers and modular logging
 
- Structured and external logging- JSON logging (jsonlogger)
- Log rotation (logging.handlers.RotatingFileHandler)
- Integration with monitoring tools (ELK, Prometheus)
 
- JSON logging (
- Distributed tracing and OpenTelemetry- Traces, spans, and metrics
- Exporters and backends
- Integration with loggingandasyncio
 
 
- Documentation- Docstrings- Inline documentation conventions
- Access via help()and.__doc__
 
- Docstring formats- reStructuredText (reST)
- Google style
- NumPy style
- Epydoc and Sphinx roles
 
- doctest(testing from docstrings)- Embedding examples
- Running tests from documentation
 
- Documentation generators and renderers- sphinx(reST → HTML/PDF)
- readthedocshosting
- mkdocsand Material for MkDocs
- pdoc3(auto API documentation)
- Doxygen+- Breatheintegration
- JupyterBookfor literate programming
- Integration with CI/CD (auto-generated docs)
 
 
- Docstrings
- Testing- Testing frameworks- unittest(standard library)
- pytest(most popular)
- nose2and legacy options
 
- Code coverage- coverage.pybasics
- pytest-covintegration
- Coverage thresholds and reports
 
- Testing types- Unit Testing (unittest,pytest)
- Integration Testing (unittest,pytest)
- Functional Testing (unittest,pytest)
- Acceptance Testing (unittest,behave)
- Regression Testing (unittest,pytest)
- Performance Testing (timeit,pytest-benchmark)
- Load / Stress Testing (asyncio,locust)
- Security Testing (unittest,bandit)
- Property-Based Testing (unittest,hypothesis)
- Fuzz Testing (unittest,atheris)
- Snapshot Testing (unittest,syrupy)
- Contract Testing (unittest,pact)
- API Testing (http.client,pytest + requests)
- UI / E2E Testing (unittest,playwright)
- Database Testing (sqlite3,pytest + testcontainers)
- Async/Concurrency Testing (asyncio,pytest-asyncio)
- Data Quality / Validation Testing (json,great_expectations)
- Compatibility / Cross-env Testing (venv,tox)
- Smoke / Sanity Testing (unittest,pytest)
- Accessibility Testing (unittest,playwright)
 
- Unit Testing (
- Fixtures and parametrization- Test Lifecycle Hooks (unittestsetUp/tearDown,pytest)
- Fixture Scopes (unittestclass/module,pytestfunction/class/module/session)
- Autouse Fixtures (unittestbase classes,pytest)
- Parametrized Tests (unittestsubTest,pytest.mark.parametrize)
- Factory Fixtures (unittesthelpers,pytestfixture factories)
- Temporary Paths and Files (tempfile,pytest.tmp_path)
- Environment and Patching (unittest.mock,pytest.monkeypatch)
- Capturing Output (contextlib.redirect_stdout,pytest.capsys/capfd)
- Logging Capture (logging,pytest.caplog)
- Time Control (time,freezegun)
- Network Isolation (socket,pytest + responses)
- Async Fixtures (asyncio,pytest-asyncio)
- Database Fixtures (sqlite3,pytest + testcontainers)
- Data Builders (json,factory_boy)
- Randomness Control (random,pytest-randomly)
 
- Test Lifecycle Hooks (
- Advanced testing tools- Mocking and Spies (unittest.mock,pytest-mock)
- Patch Utilities (unittest.mock.patch,pytest.monkeypatch)
- Coverage and Reports (trace,coverage.py)
- Parallel and Distributed Tests (multiprocessing,pytest-xdist)
- Flaky Test Control (unittestreruns,pytest-rerunfailures)
- Timeouts and Slow Tests (signal,pytest-timeout)
- Benchmarking (timeit,pytest-benchmark)
- Mutation Testing (ast,mutmut)
- HTTP Mocking (http.server,responses)
- Recording HTTP (VCR) (urllib,vcrpy)
- Contract & Schema Testing (json,schemathesis)
- Snapshot Testing (pickle,syrupy)
- Test Data Generation (random,faker)
- Test Selection & Caching (importlib,pytest-testmon)
- HTML/Allure Reports (unittestXML,pytest-html)
- CI/CD Integration (subprocess,tox)
- Profiling for Tests (cProfile,pyinstrument)
- Static Analysis (lint/type) (ast,ruff)
- Containerized Tests (subprocess,testcontainers)
- Async/Trio/AnyIO Tools (asyncio,pytest-anyio)
 
- Mocking and Spies (
 
- Testing frameworks
- Debugging- Standard debuggers- pdb
- bdb,- ipdb,- pudb
- IDE-integrated debuggers (VSCode, PyCharm)
 
- Remote and distributed debugging- debugpy(VSCode protocol)
- rpdb,- pydevd
 
- Traceback and runtime analysis- Stack traces and frames
- Traceback objects and inspection
- faulthandlerfor low-level tracing
 
- Code tracing tools- tracemodule (execution flow)
- inspectmodule (live introspection)
- sys._getframe, locals/globals inspection
- Profiling vs debugging differences
 
- Exception debugging- Post-mortem debugging
- Context display (contextlib,traceback.print_exc)
- Custom exception hooks (sys.excepthook)
 
 
- Standard debuggers
 
- Object-Oriented Programming (OOP)
- Advanced Structures and Functional Programming- Functional Programming- Functional paradigms and immutability
- Higher-order functions (map,filter,reduce)
- Anonymous functions (lambda)
- functoolsutilities- partial,- cmp_to_key,- cache,- lru_cache,- reduce
 
- operatormodule (functional equivalents for arithmetic/logical ops)
- Closures and free variables
- Currying and partial application
- Immutability and purity
- Function composition and pipelines
- Functional iteration (itertools,more-itertools)
- Side effects and referential transparency
- Recursion and tail call optimization
- Persistent data structures (immutables,pyrsistent)
 
- Itertools / Advanced Generators- Combinatorial tools (product,permutations,combinations,combinations_with_replacement)
- Accumulators and counters (accumulate,count,cycle,repeat)
- Sequence utilities (chain,compress,dropwhile,takewhile,islice,starmap,tee,zip_longest,groupby)
- Infinite and lazy sequences (itertools,more-itertools)
- Generator delegation (yield from)
- Generator-based pipelines and streams (toolz,funcy)
 
- Combinatorial tools (
- Memory Views- Buffer protocol (low-level binary access)
- memoryviewobjects and slicing
- Byte arrays and binary manipulation (bytearray,array)
- Dict views (keys,items,values)
- Shared memory across processes (multiprocessing.shared_memory)
- Interfacing with C-level buffers (ctypes,numpy)
 
- Benchmarking and Profiling- Timing and microbenchmarks (timeit,perf_counter)
- CPU profiling (cProfile,profile,pstats)
- Memory profiling (tracemalloc,memory_profiler)
- Line-level profiling (line_profiler)
- Statistical and sampling profilers (py-spy,scalene,yappi)
- Async profiling (aiomonitor,asyncio-run-instrument)
- Visualization tools (snakeviz,tuna,speedscope)
- Benchmark frameworks (pytest-benchmark,asv)
 
- Timing and microbenchmarks (
- Code Quality Tools- Style and formatting (flake8,autopep8,black,isort)
- Type checking (mypy,pyright,pytype)
- Linting (pylint,ruff,prospector)
- Security analysis (bandit,safety)
- Metrics and complexity (radon,wily)
- Code modernization (pyupgrade,futurize,modernize)
- Git and pre-commit automation (pre-commit,tox,nox)
- Docstring and naming validation (pydocstyle,pep8-naming)
- Dead code and dependency analysis (vulture,pip-check)
- Refactoring tools (rope,bowler)
 
- Style and formatting (
- Security- Common Algorithms and Concepts- Symmetric encryption (AES, ChaCha20)
- Asymmetric encryption (RSA, ECC)
- Hashing (SHA, BLAKE2, PBKDF2)
- Key derivation and stretching (scrypt, Argon2)
- Digital signatures and verification
- Certificates and PEM handling
- Public Key Infrastructure (PKI)
- Randomness and entropy pools
 
- Standard Library- hashlib(hash algorithms, digests)
- secrets(secure randomness)
- ssl(TLS, context management)
- hmac(hash-based message authentication)
- base64(binary encoding)
 
- Third-Party Libraries- bcrypt
- passlib
- cryptography
- pyjwt
- argon2-cffi
- fernet
 
 
- Common Algorithms and Concepts
- Type Hints- Function and variable annotations
- typingmodule fundamentals
- Type aliases (TypeAlias)
- Generic types (TypeVar,Generic)
- Protocols (PEP 544)
- Unions and optionals (Union,Optional)
- Literal types (Literal)
- NewType and nominal typing (NewType)
- Typed mappings (TypedDict)
- Self type and recursive references (Self, PEP 673)
- Parameter and return specifications (ParamSpec,Concatenate, PEP 612)
- Advanced static typing (mypy_extensions,typing_extensions)
- Runtime type checking (beartype,typeguard)
- Dataclass typing and validation (dataclasses,pydantic)
- Gradual typing and static analysis (mypy,pyright,ruff --extend-select TYP)
 
 
- Functional Programming
- Concurrency, Async, Low Level- Async and Concurrency- Thread-based concurrency (threading,concurrent.futures.ThreadPoolExecutor)
- Process-based parallelism (multiprocessing,concurrent.futures.ProcessPoolExecutor)
- Global Interpreter Lock (GIL) and its implications
- Synchronization primitives- Locks (Lock,RLock)
- Semaphores, Events, Barriers, Conditions
- Queues (queue,asyncio.Queue,multiprocessing.Queue)
 
- Locks (
- Parallelism vs concurrency concepts
- Asynchronous programming (asyncio)- async/- awaitkeywords
- Coroutines and cooperative multitasking
- Async iterators and async generators
- Async comprehensions
- Async context managers (async with)
- Event loop internals (asyncio.get_event_loop, policies)
- Task scheduling (create_task,gather,wait,shield)
- Synchronization primitives (Lock,Event,Semaphore,Condition)
- Exception handling and cancellation (CancelledError)
- Third-party event loops (uvloop,trio,anyio,curio)
- Green threads (greenlet,gevent)
- Background tasks and concurrency with async frameworks
- Integration with threads and processes (to_thread,run_in_executor)
- Async profiling and debugging (aiomonitor,asyncio.run,tracemalloc)
 
 
- Thread-based concurrency (
- Networking- Networking fundamentals- TCP/IP basics
- IP addressing and subnetting (ipaddress)
 
- Low-level networking (socket)- TCP and UDP sockets
- Non-blocking I/O and selectors
- Socket options and timeouts
 
- High-level networking- HTTP protocol basics
- URL handling (urllib,urllib3)
- HTTP clients (requests,httpx,aiohttp)
- WebSockets (websockets,aiohttp,fastapi.websockets)
- Email and SMTP (smtplib,imaplib,poplib,email)
- FTP and SFTP (ftplib,paramiko)
 
- Web application interfaces- WSGI (wsgiref,flask)
- ASGI (fastapi,starlette,aiohttp)
- HTTP servers (http.server,aiohttp.web,uvicorn,hypercorn)
 
- WSGI (
- Networking concurrency- Async sockets (asyncio.start_server,asyncio.open_connection)
- Connection pooling and throttling
- DNS and async resolvers (aiodns)
- SSL/TLS contexts (ssl)
- Performance testing and benchmarking (ab,wrk,locust)
 
- Async sockets (
 
- Networking fundamentals
- Metaprogramming- Metaclasses (type,__new__,__init__)
- Descriptors (__get__,__set__,__delete__)
- Difference between class decorators and metaclasses
- Dynamic class and attribute creation (setattr,getattr)
- Attribute access customization (__getattr__,__getattribute__)
- Decorator-based metaprogramming patterns
- Code generation and reflection (ast,inspect,types)
- Runtime modification of objects (monkey patching, proxy classes)
- Introspection and dynamic imports (importlib,sys.modules)
 
- Metaclasses (
- Context Managers- withstatement semantics
- Built-in context managers (open,decimal.localcontext,threading.Lock)
- contextlibmodule- contextmanagerdecorator
- ExitStack,- redirect_stdout,- suppress
 
- Async context managers (async with,@asynccontextmanager)
- Custom context managers (__enter__,__exit__)
- Resource cleanup and exception safety
- Nested and chained contexts (ExitStack)
 
- Monitoring- Runtime monitoring (sys.monitoring, PEP 669)
- Code tracing (sys.settrace,sys.setprofile)
- Logging and telemetry integration (logging,OpenTelemetry)
- Application performance monitoring (APM) (sentry-sdk,datadog,newrelic)
- Resource usage tracking (resource,psutil)
- System-level inspection (os,platform,tracemalloc)
- Custom metrics and exporters (prometheus_client)
- Distributed tracing (opentelemetry,jaeger-client)
 
- Runtime monitoring (
- Garbage Collection- Reference counting and object lifetime
- gcmodule (manual control, thresholds, debug flags)
- Weak references (weakref,WeakKeyDictionary,WeakValueDictionary)
- Circular reference detection and cleanup
- Finalization and destructors (__del__,atexit)
- Object tracking and introspection (gc.get_objects,gc.get_referrers)
- Memory leaks and object retention analysis (objgraph,pympler)
- Interaction with C extensions and native memory
- Performance tuning and garbage collection strategies (gc.freeze, tuning generations)
 
 
- Async and Concurrency
- Implementation & Distribution- General Environment Tools- Virtual environments (venv,virtualenv)
- Interactive environments (jupyter,IPython)
- Package installation and dependency management (pip,requirements.txt)
- Modern build systems (pyproject.toml,poetry,flit,uv,pdm)
- Conda environments (conda,mamba)
- Python version management (pyenv,asdf,tox)
- Dependency resolution and locking (pip-tools,poetry.lock,uv.lock)
- Environment reproducibility (pip freeze,conda env export)
- Project isolation and sandboxes (direnv,nix-shell)
- Environment variables and configuration management (dotenv,pydantic-settings)
 
- Virtual environments (
- Implementations- Building Python from source (configure, make, installation paths)
- CPython internals and command-line interface- Bytecode compilation (dis,compile)
- Interpreter flags (-O,-m,-B,-I)
- Debug builds and symbol tables
 
- Bytecode compilation (
- Alternative implementations- PyPy(JIT compiler and performance profiling)
- Cython(C extensions,- pyximport,- cythonize)
- Codon(Python-to-native compiler for performance)
- MicroPython(embedded systems)
- RustPython,- GraalPy,- Jython,- IronPython
 
- Binary distribution- pyinstaller(single-file executables)
- cx_Freeze(cross-platform packaging)
- nuitka(C++ compilation and optimization)
- shiv,- pex(self-contained zip apps)
 
- Web runtimes and browser targets- PyScript(Python in HTML, WASM-based)
- Pyodide(WASM + scientific stack)
- Brython(transpiles Python to JavaScript)
- Transcrypt(typed Python → JS transpiler)
 
- Embedding Python in other languages- C API (Python.h)
- ctypesand- cffi
- Integration in C/C++, Rust, and Go projects
- Cross-language execution (subprocess,ffi,wasmer)
 
- C API (
- Extending Python with native code- C extensions and modules
- pybind11,- Cython,- cffi
- Shared libraries and ABI compatibility
 
 
- Packaging- Packaging process- setuptoolsand- setup.py
- setup.cfg(declarative configuration)
- pyproject.toml(PEP 517/518 compliant builds)
- Build artifacts (sdist,wheel)
- Distribution upload (twine,flit publish,poetry publish)
- Package signing and verification (gpg,twine --sign)
 
- Package indexes- PyPI(official package index)
- TestPyPI(staging environment)
- pypiserver(self-hosted registries)
- Private and enterprise registries (devpi,artifactory,nexus)
 
- Versioning and metadata- Semantic versioning (PEP 440)
- Metadata and classifiers (setup.cfg,pyproject.toml)
- Dynamic versioning tools (setuptools_scm,bumpver,versioneer)
 
- Dependency management and resolution (pip,resolverlib)
- Package auditing and signing (pip-audit,gpg,sigstore)
- Cross-platform builds and reproducibility (build,cibuildwheel,tox)
 
- Packaging process
- CLI Apps- CLI argument parsing- argparse(std lib)
- optparse(legacy)
- getopt(low-level)
 
- Command frameworks- click
- typer
- python-fire
 
- Console utilities- colorama(color support)
- rich(formatting, live tables, progress bars)
- prompt_toolkit,- inquirer(interactive prompts)
 
- CLI packaging- Entry points (console_scripts)
- Shell completion generation
- Cross-platform support (os,shutil.which)
 
- Entry points (
 
- CLI argument parsing
- Graphical Apps- GUI frameworks- tkinter(standard library)
- PyQt5,- PySide6(Qt bindings)
- Kivy,- KivyMD(mobile and touch support)
- wxPython(native widgets)
- Dear PyGui(immediate-mode GUI)
- PyGObject,- GTK3/4
 
- Game and multimedia frameworks- pygame,- arcade,- ursina
 
- GUI builders and design tools (Qt Designer,Glade)
- Cross-platform packaging (pyinstaller,briefcase)
 
- GUI frameworks
- Internationalization (i18n) and Localization (l10n)- Text translation and message catalogs- gettext(std lib)
- babel(third-party)
- polib(PO file management)
 
- Locale management (locale,setlocale, environment vars)
- Number, date, and currency formatting- babel.numbers,- babel.dates
- locale.format_string
 
- Unicode normalization and encoding handling (unicodedata)
- Time zones and calendars (zoneinfo,dateutil)
- Multi-language configuration and packaging (gettext,pybabel extract/update)
 
- Text translation and message catalogs
 
- General Environment Tools
- Internals- Python Compiler & Interpreter- Abstract Syntax Tree (AST) (ast,compile)
- Bytecode inspection (dis,opcode)
- Tokenization and lexing (tokenize,token)
- Lexical analysis and parsing pipeline
- Symbol tables and scoping (symtable)
- Compilation stages (source → AST → bytecode)
- Evaluation loop (CEval)
- Frame objects (sys._getframe,inspect)
- Code objects (__code__,types.CodeType)
- Bytecode caching (.pyc,__pycache__)
- Optimization flags (-O,-OO)
- Dynamic code execution (eval,exec)
- Compile-time constants and folding
- Abstract interpretation and future statements (__future__)
 
- Abstract Syntax Tree (AST) (
- Execution Model- Call stack and stack frames
- Function call mechanics and parameter passing
- Coroutine scheduling and task switching (asyncio,trio)
- Import execution and module caching (importlib,sys.modules)
- Global state and thread safety (threading,contextvars)
- Context variables (PEP 567)
- Event loop interaction and scheduling
- Exception propagation across async boundaries
- Interpreted vs compiled function calls (builtin_function_or_method)
- Trampolines and frame reuse optimizations
- Generator and async state machines
 
- Data Model- ctypesand C-compatible structures
- Object memory layout and slots (__slots__)
- PyObject structure and reference model
- Type objects and inheritance hierarchy
- Method resolution order (C3 linearization)
- Data vs non-data descriptors (__get__,__set__,__delete__)
- Dynamic attribute resolution (__getattr__,__getattribute__)
- Numeric and sequence protocols (__add__,__getitem__, etc.)
- Callable protocol (__call__)
- Context manager protocol (__enter__,__exit__)
- Iterator protocol (__iter__,__next__)
- Coroutine protocol (__await__,__anext__)
- Mapping, hashing, and equality semantics (__hash__,__eq__)
 
- Python C Model- CPython C API (Python.h)
- PyObjectstructure and reference counting
- Extending Python with C modules (PyModuleDef,PyMethodDef)
- Embedding Python in C/C++ applications (Py_Initialize,PyRun_SimpleString)
- Argument parsing (PyArg_ParseTuple,Py_BuildValue)
- Error and exception handling (PyErr_SetString,PyErr_Occurred)
- Memory management (Py_INCREF,Py_DECREF)
- GIL internals and state management (PyGILState_Ensure,PyEval_SaveThread)
- Frame and thread state (PyThreadState,PyInterpreterState)
- C API headers (object.h,listobject.h,dictobject.h)
- Subinterpreters and isolated runtimes (_xxsubinterpreters, PEP 684)
- Cython bridge and interoperability (cython,pyximport)
- ABI stability and limited API (Py_LIMITED_API, PEP 384)
- Capsule and pointer exchange (PyCapsule)
 
- CPython C API (
- Extensions- Protocols and Foreign Function Interfaces (FFI)- ctypes
- cffi
- pybind11
- SWIG
 
- Inter-language data marshaling and memory safety
- Extending and embedding with native languages- C
- C++
- Rust (PyO3,rust-cpython,maturin)
- Go (gopy,cgo,pygo)
 
- WASM integration (wasmer,wasmtime-py)
- Cross-language RPC frameworks (grpc,capnp,flatbuffers)
- Plugin systems and dynamic loading (importlib.machinery,ctypes.CDLL)
- Binary interface and FFI debugging (gdb,valgrind,lldb-python)
 
- Protocols and Foreign Function Interfaces (FFI)
 
- Python Compiler & Interpreter
Versión imprimible multipagina. Haga click aquí para imprimir.