Welcome to the Advanced Python Programming Learning Repository! This repository is structured to help you explore and track your progress on advanced Python concepts. Each topic includes checkboxes so you can monitor your learning journey.
- Unit testing with
unittest - Mocking and patching
- Test-driven development (TDD)
- Using
pytestfor advanced testing - Property-based testing with
hypothesis
- Automating tasks with
osandshutil - Scripting with
argparseandclick - Automating web interactions with
selenium - Scheduling tasks with
apscheduler
- Understanding
typeandmetaclass - Using
__getattr__,__setattr__, and__delattr__ - Creating decorators and function wrappers
- Dynamic class creation and modification
- Reference counting and garbage collection
- The
gcmodule - Weak references and the
weakrefmodule - Analyzing memory usage with
memory_profiler
- Basics of asynchronous programming
- Coroutines, tasks, and the event loop
- Using
asynciofor I/O-bound tasks - Combining
asynciowithaiohttpandasyncpg - Advanced
asynciopatterns
- Thread-based concurrency with
threading - Process-based concurrency with
multiprocessing - Using
concurrent.futuresfor simpler parallelism - Understanding the Global Interpreter Lock (GIL)
- Parallel processing with
multiprocessing - Distributed computing with
dask - Leveraging GPUs with libraries like
cupy
- Understanding Python's execution model
- Exploring Python bytecode with
dis - Writing C extensions for Python
- Exploring the Python C API
- Data serialization with
pickleandjson - Working with large datasets using
pandasanddask - ETL pipelines with
airflow
- NumPy for numerical computing
- Advanced plotting with Matplotlib and Seaborn
- Scikit-learn for machine learning
- TensorFlow and PyTorch for deep learning
- Using
pdbandipdbfor debugging - Profiling with
cProfileandline_profiler - Tracing and logging with
traceandlogging
- Writing efficient code with
cython - Vectorization with
numpy - Just-in-time compilation with
numba - Using
lru_cachefor caching results