Introduction xxxi
Acknowledgments xxxiii
About the Author xxxv
Chapter 1: Text 1
1.1 string: Text Constants and Templates 1
1.2 textwrap: Formatting Text Paragraphs 7
1.3 re: Regular Expressions 13
1.4 difflib: Compare Sequences 58
Chapter 2: Data Structures 65
2.1 enum: Enumeration Type 66
2.2 collections: Container Data Types 75
2.3 array: Sequence of Fixed-Type Data 98
2.4 heapq: Heap Sort Algorithm 103
2.5 bisect: Maintain Lists in Sorted Order 109
2.6 queue: Thread-Safe FIFO Implementation 111
2.7 struct: Binary Data Structures 117
2.8 weakref: Impermanent References to Objects 121
2.9 copy: Duplicate Objects 130
2.10 pprint: Pretty-Print Data Structures 136
Chapter 3: Algorithms 143
3.1 functools: Tools for Manipulating Functions 143
3.2 itertools: Iterator Functions 163
3.3 operator: Functional Interface to Built-in Operators 183
3.4 contextlib: Context Manager Utilities 191
Chapter 4: Dates and Times 211
4.1 time: Clock Time 211
4.2 datetime: Date and Time Value Manipulation 221
4.3 calendar: Work with Dates 233
Chapter 5: Mathematics 239
5.1 decimal: Fixed- and Floating-Point Math 239
5.2 fractions: Rational Numbers 250
5.3 random: Pseudorandom Number Generators 254
5.4 math: Mathematical Functions 264
5.5 statistics: Statistical Calculations 290
Chapter 6: The File System 295
6.1 os.path: Platform-Independent Manipulation of Filenames 296
6.2 pathlib: File System Paths as Objects 305
6.3 glob: Filename Pattern Matching 319
6.4 fnmatch: Unix-Style Glob Pattern Matching 323
6.5 linecache: Read Text Files Efficiently 326
6.6 tempfile: Temporary File System Objects 330
6.7 shutil: High-Level File Operations 337
6.8 filecmp: Compare Files 351
6.9 mmap: Memory-Map Files 361
6.10 codecs: String Encoding and Decoding 365
6.11 io: Text, Binary, and Raw Stream I/O Tools 390
Chapter 7: Data Persistence and Exchange 395
7.1 pickle: Object Serialization 396
7.2 shelve: Persistent Storage of Objects 405
7.3 dbm: Unix KeyValue Databases 408
7.4 sqlite3: Embedded Relational Database 412
7.5 xml.etree.ElementTree: XML Manipulation API 445
7.6 csv: Comma-Separated Value Files 466
Chapter 8: Data Compression and Archiving 477
8.1 zlib: GNU zlib Compression 477
8.2 gzip: Read and Write GNU zip Files 486
8.3 bz2: bzip2 Compression 491
8.4 tarfile: Tar Archive Access 503
8.5 zipfile: ZIP Archive Access 511
Chapter 9: Cryptography 523
9.1 hashlib: Cryptographic Hashing 523
9.2 hmac: Cryptographic Message Signing and Verification 528
Chapter 10: Concurrency with Processes, Threads, and Coroutines 535
10.1 subprocess: Spawning Additional Processes 535
10.2 signal: Asynchronous System Events 553
10.3 threading: Manage Concurrent Operations Within a Process 560
10.4 multiprocessing: Manage Processes Like Threads 586
10.5 asyncio: Asynchronous I/O, Event Loop, and Concurrency Tools 617
10.6 concurrent.futures: Manage Pools of Concurrent Tasks 677
Chapter 11: Networking 687
11.1 ipaddress: Internet Addresses 687
11.2 socket: Network Communication 693
11.3 selectors: I/O Multiplexing Abstractions 724
11.4 select: Wait for I/O Efficiently 728
11.5 socketserver: Creating Network Servers 742
Chapter 12: The Internet 753
12.1 urllib.parse: Split URLs into Components 753
12.2 urllib.request: Network Resource Access 761
12.3 urllib.robotparser: Internet Spider Access Control 773
12.4 base64: Encode Binary Data with ASCII 776
12.5 http.server: Base Classes for Implementing Web Servers 781
12.6 http.cookies: HTTP Cookies 790
12.7 webbrowser: Displays Web Pages 796
12.8 uuid: Universally Unique Identifiers 797
12.9 json: JavaScript Object Notation 803
12.10 xmlrpc.client: Client Library for XML-RPC 816
12.11 xmlrpc.server: An XML-RPC Server 827
Chapter 13: Email 841
13.1 smtplib: Simple Mail Transfer Protocol Client 841
13.2 smtpd: Sample Mail Servers 847
13.3 mailbox: Manipulate Email Archives 852
13.4 imaplib: IMAP4 Client Library 864
Chapter 14: Application Building Blocks 887
14.1 argparse: Command-Line Option and Argument Parsing 888
14.2 getopt: Command-Line Option Parsing 916
14.3 readline: The GNU readline Library 922
14.4 getpass: Secure Password Prompt 935
14.5 cmd: Line-Oriented Command Processors 938
14.6 shlex: Parse Shell-Style Syntaxes 951
14.7 configparser: Work with Configuration Files 960
14.8 logging: Report Status, Error, and Informational Messages 980
14.9 fileinput: Command-Line Filter Framework 986
14.10 atexit: Program Shutdown Callbacks 993
14.11 sched: Timed Event Scheduler 998
Chapter 15: Internationalization and Localization 1003
15.1 gettext: Message Catalogs 1003
15.2 locale: Cultural Localization API 1012
Chapter 16: Developer Tools 1023
16.1 pydoc: Online Help for Modules 1024
16.2 doctest: Testing Through Documentation 1026
16.3 unittest: Automated Testing Framework 1051
16.4 trace: Follow Program Flow 1069
16.5 traceback: Exceptions and Stack Traces 1078
16.6 cgitb: Detailed Traceback Reports 1089
16.7 pdb: Interactive Debugger 1101
16.8 profile and pstats: Performance Analysis 1140
16.9 timeit: Time the Execution of Small Bits of Python Code 1148
16.10 tabnanny: Indentation Validator 1153
16.11 compileall: Byte-Compile Source Files 1155
16.12 pyclbr: Class Browser 1160
16.13 venv: Create Virtual Environments 1163
16.14 ensurepip: Install the Python Package Installer 1167
Chapter 17: Runtime Features 1169
17.1 site: Site-wide Configuration 1169
17.2 sys: System-Specific Configuration 1178
17.3 os: Portable Access to Operating SystemSpecific Features 1227
17.4 platform: System Version Information 1246
17.5 resource: System Resource Management 1251
17.6 gc: Garbage Collector 1254
17.7 sysconfig: Interpreter Compile-Time Configuration 1270
Chapter 18: Language Tools 1279
18.1 warnings: Non-fatal Alerts 1279
18.2 abc: Abstract Base Classes 1287
18.3 dis: Python Byte-Code Disassembler 1296
18.4 inspect: Inspect Live Objects 1311
Chapter 19: Modules and Packages 1329
19.1 importlib: Pythons Import Mechanism 1329
19.2 pkgutil: Package Utilities 1334
19.3 zipimport: Load Python Code from ZIP Archives 1344
Appendix A: Porting Notes 1351
A.1 References 1351
A.2 New Modules 1352
A.3 Renamed Modules 1352
A.4 Removed Modules 1354
A.5 Deprecated Modules 1355
A.6 Summary of Changes to Modules 1356
Appendix B: Outside of the Standard Library 1367
B.1 Text 1367
B.2 Algorithms 1367
B.3 Dates and Times 1368
B.4 Mathematics 1368
B.5 Data Persistence and Exchange 1368
B.6 Cryptography 1369
B.7 Concurrency with Processes, Threads, and Coroutines 1369
B.8 The Internet 1369
B.9 Email 1370
B.10 Application Building Blocks 1370
B.11 Developer Tools 1371
Index of Python Modules 1373
Index 1375