Muutke küpsiste eelistusi

Python 3 Standard Library by Example, The [Pehme köide]

  • Formaat: Paperback / softback, 1456 pages
  • Sari: Developer's Library
  • Ilmumisaeg: 28-Jun-2017
  • Kirjastus: Addison Wesley
  • ISBN-10: 0134291050
  • ISBN-13: 9780134291055
Teised raamatud teemal:
  • Formaat: Paperback / softback, 1456 pages
  • Sari: Developer's Library
  • Ilmumisaeg: 28-Jun-2017
  • Kirjastus: Addison Wesley
  • ISBN-10: 0134291050
  • ISBN-13: 9780134291055
Teised raamatud teemal:

Master the Powerful Python 3 Standard Library through Real Code Examples 

“The genius of Doug’s approach is that with 15 minutes per week, any motivated programmer can learn the Python Standard Library. Doug’s guided tour will help you flip the switch to fully power-up Python’s batteries.”

–Raymond Hettinger, Distinguished Python Core Developer

 The Python 3 Standard Library contains hundreds of modules for interacting with the operating system, interpreter, and Internet–all extensively tested and ready to jump-start application development. Now, Python expert Doug Hellmann introduces every major area of the Python 3.x library through concise source code and output examples. Hellmann’s examples fully demonstrate each feature and are designed for easy learning and reuse.

 

You’ll find practical code for working with text, data structures, algorithms, dates/times, math, the file system, persistence, data exchange, compression, archiving, crypto, processes/threads, networking, Internet capabilities, email, developer and language tools, the runtime, packages, and more. Each section fully covers one module, with links to additional resources, making this book an ideal tutorial and reference.

 

The Python 3 Standard Library by Example introduces Python 3.x’s new libraries, significant functionality changes, and new layout and naming conventions. Hellmann also provides expert porting guidance for moving code from 2.x Python standard library modules to their Python 3.x equivalents.

  • Manipulate text with string, textwrap, re (regular expressions), and difflib
  • Use data structures: enum, collections, array, heapq, queue, struct, copy, and more
  • Implement algorithms elegantly and concisely with functools, itertools, and contextlib
  • Handle dates/times and advanced mathematical tasks
  • Archive and data compression
  • Understand data exchange and persistence, including json, dbm, and sqlite
  • Sign and verify messages cryptographically
  • Manage concurrent operations with processes and threads
  • Test, debug, compile, profile, language, import, and package tools
  • Control interaction at runtime with interpreters or the environment
Introduction xxxi
Acknowledgments xxxiii
About the Author xxxv
Chapter 1 Text 1(64)
1.1 string: Text Constants and Templates
1(6)
1.1.1 Functions
1(1)
1.1.2 Templates
2(2)
1.1.3 Advanced Templates
4(2)
1.1.4 Formatter
6(1)
1.1.5 Constants
6(1)
1.2 textwrap: Formatting Text Paragraphs
7(6)
1.2.1 Example Data
8(1)
1.2.2 Filling Paragraphs
8(1)
1.2.3 Removing Existing Indentation
8(1)
1.2.4 Combining Dedent and Fill
9(1)
1.2.5 Indenting Blocks
10(2)
1.2.6 Hanging Indents
12(1)
1.2.7 Truncating Long Text
12(1)
1.3 re: Regular Expressions
13(45)
1.3.1 Finding Patterns in Text
14(1)
1.3.2 Compiling Expressions
15(1)
1.3.3 Multiple Matches
16(1)
1.3.4 Pattern Syntax
17(11)
1.3.5 Constraining the Search
28(2)
1.3.6 Dissecting Matches with Groups
30(6)
1.3.7 Search Options
36(8)
1.3.8 Looking Ahead or Behind
44(4)
1.3.9 Self-referencing Expressions
48(5)
1.3.10 Modifying Strings with Patterns
53(2)
1.3.11 Splitting with Patterns
55(3)
1.4 difflib: Compare Sequences
58(7)
1.4.1 Comparing Bodies of Text
58(3)
1.4.2 Junk Data
61(1)
1.4.3 Comparing Arbitrary Types
62(3)
Chapter 2 Data Structures 65(78)
2.1 enum: Enumeration Type
66(9)
2.1.1 Creating Enumerations
66(1)
2.1.2 Iteration
67(1)
2.1.3 Comparing Enums
67(2)
2.1.4 Unique Enumeration Values
69(2)
2.1.5 Creating Enumerations Programmatically
71(1)
2.1.6 Non-integer Member Values
72(3)
2.2 collections: Container Data Types
75(23)
2.2.1 ChainMap: Search Multiple Dictionaries
75(4)
2.2.2 Counter: Count Hashable Objects
79(4)
2.2.3 defaultdict: Missing Keys Return a Default Value
83(1)
2.2.4 deque: Double-Ended Queue
84(5)
2.2.5 namedtuple: Tuple Subclass with Named Fields
89(5)
2.2.6 OrderedDict: Remember the Order Keys Are Added to a Dictionary
94(3)
2.2.7 collections.abc: Abstract Base Classes for Containers
97(1)
2.3 array: Sequence of Fixed-Type Data
98(5)
2.3.1 Initialization
98(1)
2.3.2 Manipulating Arrays
99(1)
2.3.3 Arrays and Files
100(1)
2.3.4 Alternative Byte Ordering
101(2)
2.4 heapq: Heap Sort Algorithm
103(6)
2.4.1 Example Data
103(1)
2.4.2 Creating a Heap
104(1)
2.4.3 Accessing the Contents of a Heap
105(2)
2.4.4 Data Extremes from a Heap
107(1)
2.4.5 Efficiently Merging Sorted Sequences
108(1)
2.5 bisect: Maintain Lists in Sorted Order
109(2)
2.5.1 Inserting in Sorted Order
109(1)
2.5.2 Handling Duplicates
110(1)
2.6 queue: Thread-Safe FIFO Implementation
111(6)
2.6.1 Basic FIFO Queue
112(1)
2.6.2 LIFO Queue
112(1)
2.6.3 Priority Queue
113(1)
2.6.4 Building a Threaded Podcast Client
114(3)
2.7 struct: Binary Data Structures
117(4)
2.7.1 Functions Versus Struct Class
117(1)
2.7.2 Packing and Unpacking
117(1)
2.7.3 Endianness
118(2)
2.7.4 Buffers
120(1)
2.8 weakref: Impermanent References to Objects
121(9)
2.8.1 References
122(1)
2.8.2 Reference Callbacks
122(1)
2.8.3 Finalizing Objects
123(3)
2.8.4 Proxies
126(1)
2.8.5 Caching Objects
127(3)
2.9 copy: Duplicate Objects
130(6)
2.9.1 Shallow Copies
130(1)
2.9.2 Deep Copies
131(1)
2.9.3 Customizing Copy Behavior
132(1)
2.9.4 Recursion in Deep Copy
133(3)
2.10 pprint: Pretty-Print Data Structures
136(7)
2.10.1 Printing
136(1)
2.10.2 Formatting
137(1)
2.10.3 Arbitrary Classes
138(1)
2.10.4 Recursion
139(1)
2.10.5 Limiting Nested Output
139(1)
2.10.6 Controlling Output Width
140(3)
Chapter 3 Algorithms 143(68)
3.1 functools: Tools for Manipulating Functions
143(20)
3.1.1 Decorators
143(8)
3.1.2 Comparison
151(4)
3.1.3 Caching
155(3)
3.1.4 Reducing a Data Set
158(3)
3.1.5 Generic Functions
161(2)
3.2 itertools: Iterator Functions
163(20)
3.2.1 Merging and Splitting Iterators
164(3)
3.2.2 Converting Inputs
167(2)
3.2.3 Producing New Values
169(3)
3.2.4 Filtering
172(3)
3.2.5 Grouping Data
175(1)
3.2.6 Combining Inputs
176(7)
3.3 operator: Functional Interface to Built-in Operators
183(8)
3.3.1 Logical Operations
183(1)
3.3.2 Comparison Operators
184(1)
3.3.3 Arithmetic Operators
184(2)
3.3.4 Sequence Operators
186(1)
3.3.5 In-Place Operators
187(1)
3.3.6 Attribute and Item "Getters"
188(2)
3.3.7 Combining Operators and Custom Classes
190(1)
3.4 contextlib: Context Manager Utilities
191(20)
3.4.1 Context Manager API
191(3)
3.4.2 Context Managers as Function Decorators
194(2)
3.4.3 From Generator to Context Manager
196(2)
3.4.4 Closing Open Handles
198(1)
3.4.5 Ignoring Exceptions
199(2)
3.4.6 Redirecting Output Streams
201(1)
3.4.7 Dynamic Context Manager Stacks
202(9)
Chapter 4 Dates and Times 211(28)
4.1 time: Clock Time
211(10)
4.1.1 Comparing Clocks
211(2)
4.1.2 Wall Clock Time
213(1)
4.1.3 Monotonic Clocks
214(1)
4.1.4 Processor Clock Time
214(2)
4.1.5 Performance Counter
216(1)
4.1.6 Time Components
217(1)
4.1.7 Working with Time Zones
218(1)
4.1.8 Parsing and Formatting Times
219(2)
4.2 datetime: Date and Time Value Manipulation
221(12)
4.2.1 Times
221(1)
4.2.2 Dates
222(3)
4.2.3 timedeltas
225(1)
4.2.4 Date Arithmetic
226(2)
4.2.5 Comparing Values
228(1)
4.2.6 Combining Dates and Times
228(2)
4.2.7 Formatting and Parsing
230(1)
4.2.8 Time Zones
231(2)
4.3 calendar: Work with Dates
233(6)
4.3.1 Formatting Examples
233(3)
4.3.2 Locales
236(1)
4.3.3 Calculating Dates
236(3)
Chapter 5 Mathematics 239(56)
5.1 decimal: Fixed-and Floating-Point Math
239(11)
5.1.1 Decimal
239(2)
5.1.2 Formatting
241(1)
5.1.3 Arithmetic
242(1)
5.1.4 Special Values
243(1)
5.1.5 Context
244(6)
5.2 fractions: Rational Numbers
250(4)
5.2.1 Creating Fraction Instances
250(2)
5.2.2 Arithmetic
252(1)
5.2.3 Approximating Values
253(1)
5.3 random: Pseudorandom Number Generators
254(10)
5.3.1 Generating Random Numbers
254(1)
5.3.2 Seeding
255(1)
5.3.3 Saving State
255(2)
5.3.4 Random Integers
257(1)
5.3.5 Picking Random Items
258(1)
5.3.6 Permutations
258(2)
5.3.7 Sampling
260(1)
5.3.8 Multiple Simultaneous Generators
261(1)
5.3.9 SystemRandom
262(1)
5.3.10 Non-uniform Distributions
263(1)
5.4 math: Mathematical Functions
264(26)
5.4.1 Special Constants
265(1)
5.4.2 Testing for Exceptional Values
265(2)
5.4.3 Comparing
267(3)
5.4.4 Converting Floating-Point Values to Integers
270(1)
5.4.5 Alternative Representations of Floating-Point Values
271(1)
5.4.6 Positive and Negative Signs
272(2)
5.4.7 Commonly Used Calculations
274(4)
5.4.8 Exponents and Logarithms
278(4)
5.4.9 Angles
282(2)
5.4.10 Trigonometry
284(4)
5.4.11 Hyperbolic Functions
288(1)
5.4.12 Special Functions
289(1)
5.5 statistics: Statistical Calculations
290(5)
5.5.1 Averages
290(2)
5.5.2 Variance
292(3)
Chapter 6 The File System 295(100)
6.1 os.path: Platform-Independent Manipulation of Filenames
296(9)
6.1.1 Parsing Paths
296(4)
6.1.2 Building Paths
300(1)
6.1.3 Normalizing Paths
301(1)
6.1.4 File Times
302(1)
6.1.5 Testing Files
303(2)
6.2 pathlib: File System Paths as Objects
305(14)
6.2.1 Path Representations
305(1)
6.2.2 Building Paths
305(2)
6.2.3 Parsing Paths
307(2)
6.2.4 Creating Concrete Paths
309(1)
6.2.5 Directory Contents
309(3)
6.2.6 Reading and Writing Files
312(1)
6.2.7 Manipulating Directories and Symbolic Links
312(1)
6.2.8 File Types
313(2)
6.2.9 File Properties
315(2)
6.2.10 Permissions
317(1)
6.2.11 Deleting
318(1)
6.3 glob: Filename Pattern Matching
319(4)
6.3.1 Example Data
320(1)
6.3.2 Wildcards
320(1)
6.3.3 Single-Character Wildcard
321(1)
6.3.4 Character Ranges
322(1)
6.3.5 Escaping Meta-characters
322(1)
6.4 fnmatch: Unix-Style Glob Pattern Matching
323(3)
6.4.1 Simple Matching
323(2)
6.4.2 Filtering
325(1)
6.4.3 Translating Patterns
325(1)
6.5 linecache: Read Text Files Efficiently
326(4)
6.5.1 Test Data
326(1)
6.5.2 Reading Specific Lines
327(1)
6.5.3 Handling Blank Lines
328(1)
6.5.4 Error Handling
328(1)
6.5.5 Reading Python Source Files
329(1)
6.6 tempfile: Temporary File System Objects
330(7)
6.6.1 Temporary Files
331(2)
6.6.2 Named Files
333(1)
6.6.3 Spooled Files
333(2)
6.6.4 Temporary Directories
335(1)
6.6.5 Predicting Names
335(1)
6.6.6 Temporary File Location
336(1)
6.7 shutil: High-Level File Operations
337(14)
6.7.1 Copying Files
337(3)
6.7.2 Copying File Metadata
340(2)
6.7.3 Working with Directory Trees
342(3)
6.7.4 Finding Files
345(1)
6.7.5 Archives
346(4)
6.7.6 File System Space
350(1)
6.8 filecmp: Compare Files
351(10)
6.8.1 Example Data
351(2)
6.8.2 Comparing Files
353(2)
6.8.3 Comparing Directories
355(2)
6.8.4 Using Differences in a Program
357(4)
6.9 mmap: Memory-Map Files
361(4)
6.9.1 Reading
361(1)
6.9.2 Writing
362(2)
6.9.3 Regular Expressions
364(1)
6.10 codecs: String Encoding and Decoding
365(25)
6.10.1 Unicode Primer
365(3)
6.10.2 Working with Files
368(2)
6.10.3 Byte Order
370(2)
6.10.4 Error Handling
372(4)
6.10.5 Encoding Translation
376(1)
6.10.6 Non-Unicode Encodings
377(1)
6.10.7 Incremental Encoding
378(2)
6.10.8 Unicode Data and Network Communication
380(3)
6.10.9 Defining a Custom Encoding
383(7)
6.11 io: Text, Binary, and Raw Stream I/O Tools
390(5)
6.11.1 In-Memory Streams
390(2)
6.11.2 Wrapping Byte Streams for Text Data
392(3)
Chapter 7 Data Persistence and Exchange 395(82)
7.1 pickle: Object Serialization
396(9)
7.1.1 Encoding and Decoding Data in Strings
396(1)
7.1.2 Working with Streams
397(2)
7.1.3 Problems Reconstructing Objects
399(1)
7.1.4 Unpicklable Objects
400(2)
7.1.5 Circular References
402(3)
7.2 shelve: Persistent Storage of Objects
405(3)
7.2.1 Creating a New Shelf
405(1)
7.2.2 Writeback
406(2)
7.2.3 Specific Shelf Types
408(1)
7.3 dbm: Unix Key-Value Databases
408(4)
7.3.1 Database Types
408(1)
7.3.2 Creating a New Database
409(1)
7.3.3 Opening an Existing Database
410(1)
7.3.4 Error Cases
411(1)
7.4 sqlite3: Embedded Relational Database
412(33)
7.4.1 Creating a Database
412(3)
7.4.2 Retrieving Data
415(2)
7.4.3 Query Metadata
417(1)
7.4.4 Row Objects
417(2)
7.4.5 Using Variables with Queries
419(2)
7.4.6 Bulk Loading
421(1)
7.4.7 Defining New Column Types
422(4)
7.4.8 Determining Types for Columns
426(2)
7.4.9 Transactions
428(3)
7.4.10 Isolation Levels
431(3)
7.4.11 In-Memory Databases
434(1)
7.4.12 Exporting the Contents of a Database
435(1)
7.4.13 Using Python Functions in SQL
436(3)
7.4.14 Querying with Regular Expressions
439(1)
7.4.15 Custom Aggregation
440(1)
7.4.16 Threading and Connection Sharing
441(1)
7.4.17 Restricting Access to Data
442(3)
7.5 xml.etree.ElementTree: XML Manipulation API
445(21)
7.5.1 Parsing an XML Document
445(1)
7.5.2 Traversing the Parsed Tree
446(1)
7.5.3 Finding Nodes in a Document
447(2)
7.5.4 Parsed Node Attributes
449(2)
7.5.5 Watching Events While Parsing
451(2)
7.5.6 Creating a Custom Tree Builder
453(2)
7.5.7 Parsing Strings
455(2)
7.5.8 Building Documents With Element Nodes
457(1)
7.5.9 Pretty-Printing XML
458(1)
7.5.10 Setting Element Properties
459(2)
7.5.11 Building Trees from Lists of Nodes
461(3)
7.5.12 Serializing XML to a Stream
464(2)
7.6 csv: Comma-Separated Value Files
466(11)
7.6.1 Reading
466(1)
7.6.2 Writing
467(2)
7.6.3 Dialects
469(5)
7.6.4 Using Field Names
474(3)
Chapter 8 Data Compression and Archiving 477(46)
8.1 zlib: GNU zlib Compression
477(9)
8.1.1 Working with Data in Memory
477(2)
8.1.2 Incremental Compression and Decompression
479(1)
8.1.3 Mixed Content Streams
480(1)
8.1.4 Checksums
481(1)
8.1.5 Compressing Network Data
482(4)
8.2 gzip: Read and Write GNU zip Files
486(5)
8.2.1 Writing Compressed Files
486(3)
8.2.2 Reading Compressed Data
489(1)
8.2.3 Working with Streams
490(1)
8.3 bz2: bzip2 Compression
491(12)
8.3.1 One-Shot Operations in Memory
492(1)
8.3.2 Incremental Compression and Decompression
493(1)
8.3.3 Mixed-Content Streams
494(1)
8.3.4 Writing Compressed Files
495(2)
8.3.5 Reading Compressed Files
497(1)
8.3.6 Reading and Writing Unicode Data
498(1)
8.3.7 Compressing Network Data
499(4)
8.4 tarfile: Tar Archive Access
503(8)
8.4.1 Testing Tar Files
503(1)
8.4.2 Reading Metadata from an Archive
504(2)
8.4.3 Extracting Files from an Archive
506(2)
8.4.4 Creating New Archives
508(1)
8.4.5 Using Alternative Archive Member Names
508(1)
8.4.6 Writing Data from Sources Other Than Files
509(1)
8.4.7 Appending to Archives
510(1)
8.4.8 Working with Compressed Archives
510(1)
8.5 zipfile: ZIP Archive Access
511(12)
8.5.1 Testing ZIP Files
512(1)
8.5.2 Reading Metadata from an Archive
512(2)
8.5.3 Extracting Archived Files From an Archive
514(1)
8.5.4 Creating New Archives
514(2)
8.5.5 Using Alternative Archive Member Names
516(1)
8.5.6 Writing Data from Sources Other Than Files
517(1)
8.5.7 Writing with a Zipinfo Instance
517(1)
8.5.8 Appending to Files
518(1)
8.5.9 Python ZIP Archives
519(2)
8.5.10 Limitations
521(2)
Chapter 9 Cryptography 523(12)
9.1 hashlib: Cryptographic Hashing
523(5)
9.1.1 Hash Algorithms
523(1)
9.1.2 Sample Data
524(1)
9.1.3 MD5 Example
524(1)
9.1.4 SHA1 Example
525(1)
9.1.5 Creating a Hash by Name
525(1)
9.1.6 Incremental Updates
526(2)
9.2 hmac: Cryptographic Message Signing and Verification
528(7)
9.2.1 Signing Messages
528(1)
9.2.2 Alternative Digest Types
528(1)
9.2.3 Binary Digests
529(1)
9.2.4 Applications of Message Signatures
530(5)
Chapter 10 Concurrency with Processes, Threads, and Coroutines 535(152)
10.1 subprocess: Spawning Additional Processes
535(18)
10.1.1 Running External Command
536(6)
10.1.2 Working with Pipes Directly
542(3)
10.1.3 Connecting Segments of a Pipe
545(1)
10.1.4 Interacting with Another Command
546(2)
10.1.5 Signaling Between Processes
548(5)
10.2 signal: Asynchronous System Events
553(7)
10.2.1 Receiving Signals
554(1)
10.2.2 Retrieving Registered Handlers
555(1)
10.2.3 Sending Signals
556(1)
10.2.4 Alarms
556(1)
10.2.5 Ignoring Signals
557(1)
10.2.6 Signals and Threads
558(2)
10.3 threading: Manage Concurrent Operations Within a Process
560(26)
10.3.1 Thread Objects
560(2)
10.3.2 Determining the Current Thread
562(2)
10.3.3 Daemon Versus Non-daemon Threads
564(3)
10.3.4 Enumerating All Threads
567(1)
10.3.5 Subclassing Thread
568(2)
10.3.6 Timer Threads
570(1)
10.3.7 Signaling Between Threads
571(1)
10.3.8 Controlling Access to Resources
572(6)
10.3.9 Synchronizing Threads
578(3)
10.3.10 Limiting Concurrent Access to Resources
581(2)
10.3.11 Thread Specific Data
583(3)
10.4 multiprocessing: Manage Processes Like Threads
586(31)
10.4.1 multiprocessing Basics
586(1)
10.4.2 Importable Target Functions
587(1)
10.4.3 Determining the Current Process
588(1)
10.4.4 Daemon Processes
589(2)
10.4.5 Waiting for Processes
591(2)
10.4.6 Terminating Processes
593(1)
10.4.7 Process Exit Status
594(2)
10.4.8 Logging
596(1)
10.4.9 Subclassing Process
597(1)
10.4.10 Passing Messages to Processes
598(4)
10.4.11 Signaling Between Processes
602(1)
10.4.12 Controlling Access to Resources
603(1)
10.4.13 Synchronizing Operations
604(1)
10.4.14 Controlling Concurrent Access to Resources
605(3)
10.4.15 Managing Shared State
608(1)
10.4.16 Shared Namespaces
608(3)
10.4.17 Process Pools
611(2)
10.4.18 Implementing MapReduce
613(4)
10.5 asyncio: Asynchronous I/O, Event Loop, and Concurrency Tools
617(60)
10.5.1 Asynchronous Concurrency Concepts
618(1)
10.5.2 Cooperative Multitasking with Coroutines
618(4)
10.5.3 Scheduling Calls to Regular Functions
622(3)
10.5.4 Producing Results Asynchronously
625(3)
10.5.5 Executing Tasks Concurrently
628(4)
10.5.6 Composing Coroutines with Control Structures
632(5)
10.5.7 Synchronization Primitives
637(7)
10.5.8 Asynchronous I/O with Protocol Class Abstractions
644(6)
10.5.9 Asynchronous I/O Using Coroutines and Streams
650(6)
10.5.10 Using SSL
656(2)
10.5.11 Interacting with Domain Name Services
658(3)
10.5.12 Working with Subprocesses
661(7)
10.5.13 Receiving Unix Signals
668(2)
10.5.14 Combining Coroutines with Threads and Processes
670(3)
10.5.15 Debugging with asyncio
673(4)
10.6 concurrent.futures: Manage Pools of Concurrent Tasks
677(10)
10.6.1 Using map() with a Basic Thread Pool
677(1)
10.6.2 Scheduling Individual Tasks
678(1)
10.6.3 Waiting for Tasks in Any Order
679(1)
10.6.4 Future Callbacks
680(1)
10.6.5 Canceling Tasks
681(2)
10.6.6 Exceptions in Tasks
683(1)
10.6.7 Context Manager
683(1)
10.6.8 Process Pools
684(3)
Chapter 11 Networking 687(66)
11.1 ipaddress: Internet Addresses
687(6)
11.1.1 Addresses
687(1)
11.1.2 Networks
688(4)
11.1.3 Interfaces
692(1)
11.2 socket: Network Communication
693(31)
11.2.1 Addressing, Protocol Families, and Socket Types
693(11)
11.2.2 TCP/IP Client and Server
704(7)
11.2.3 User Datagram Client and Server
711(3)
11.2.4 Unix Domain Sockets
714(3)
11.2.5 Multicast
717(4)
11.2.6 Sending Binary Data
721(2)
11.2.7 Non-blocking Communication and Timeouts
723(1)
11.3 selectors: I/O Multiplexing Abstractions
724(4)
11.3.1 Operating Model
724(1)
11.3.2 Echo Server
724(2)
11.3.3 Echo Client
726(1)
11.3.4 Server and Client Together
727(1)
11.4 select: Wait for I/O Efficiently
728(14)
11.4.1 Using select()
729(5)
11.4.2 Non-blocking I/O with Timeouts
734(3)
11.4.3 Using poll()
737(5)
11.4.4 Platform-Specific Options
742(1)
11.5 socketserver: Creating Network Servers
742(11)
11.5.1 Server Types
742(1)
11.5.2 Server Objects
743(1)
11.5.3 Implementing a Server
743(1)
11.5.4 Request Handlers
743(1)
11.5.5 Echo Example
744(5)
11.5.6 Threading and Forking
749(4)
Chapter 12 The Internet 753(88)
12.1 urllib.parse: Split URLs into Components
753(8)
12.1.1 Parsing
754(2)
12.1.2 Unparsing
756(2)
12.1.3 Joining
758(1)
12.1.4 Encoding Query Arguments
759(2)
12.2 urllib.request: Network Resource Access
761(12)
12.2.1 HTTP GET
761(2)
12.2.2 Encoding Arguments
763(1)
12.2.3 HTTP POST
764(1)
12.2.4 Adding Outgoing Headers
765(1)
12.2.5 Posting Form Data from a Request
766(1)
12.2.6 Uploading Files
767(3)
12.2.7 Creating Custom Protocol Handlers
770(3)
12.3 urllib.robotparser: Internet Spider Access Control
773(3)
12.3.1 robots.txt
773(1)
12.3.2 Testing Access Permissions
774(1)
12.3.3 Long-Lived Spiders
775(1)
12.4 base64: Encode Binary Data with ASCII
776(5)
12.4.1 Base 64 Encoding
777(1)
12.4.2 Base64 Decoding
778(1)
12.4.3 URL-Safe Variations
778(1)
12.4.4 Other Encodings
779(2)
12.5 http.server: Base Classes for Implementing Web Servers
781(9)
12.5.1 HTTP GET
781(3)
12.5.2 HTTP POST
784(2)
12.5.3 Threading and Forking
786(1)
12.5.4 Handling Errors
787(1)
12.5.5 Setting Headers
788(1)
12.5.6 Command-Line Use
789(1)
12.6 http.cookies: HTTP Cookies
790(6)
12.6.1 Creating and Setting a Cookie
790(1)
12.6.2 Morsels
791(2)
12.6.3 Encoded Values
793(1)
12.6.4 Receiving and Parsing Cookie Headers
794(1)
12.6.5 Alternative Output Formats
795(1)
12.7 webbrowser: Displays Web Pages
796(1)
12.7.1 Simple Example
796(1)
12.7.2 Windows Versus Tabs
796(1)
12.7.3 Using a Specific Browser
796(1)
12.7.4 BROWSER Variable
797(1)
12.7.5 Command-Line Interface
797(1)
12.8 uuid: Universally Unique Identifiers
797(6)
12.8.1 UUID 1: IEEE 802 MAC Address
798(2)
12.8.2 UUID 3 and 5: Name-Based Values
800(2)
12.8.3 UUID 4: Random Values
802(1)
12.8.4 Working with UUID Objects
802(1)
12.9 json: JavaScript Object Notation
803(13)
12.9.1 Encoding and Decoding Simple Data Types
804(1)
12.9.2 Human-Consumable Versus Compact Output
805(2)
12.9.3 Encoding Dictionaries
807(1)
12.9.4 Working with Custom Types
807(3)
12.9.5 Encoder and Decoder Classes
810(3)
12.9.6 Working with Streams and Files
813(1)
12.9.7 Mixed Data Streams
813(2)
12.9.8 JSON at the Command Line
815(1)
12.10 xmlrpc.client: Client Library for XML-RPC
816(11)
12.10.1 Connecting to a Server
817(2)
12.10.2 Data Types
819(3)
12.10.3 Passing Objects
822(1)
12.10.4 Binary Data
823(2)
12.10.5 Exception Handling
825(1)
12.10.6 Combining Calls into One Message
826(1)
12.11 xmlrpc.server: An XML-RPC Server
827(14)
12.11.1 A Simple Server
828(1)
12.11.2 Alternate API Names
829(1)
12.11.3 Dotted API Names
830(1)
12.11.4 Arbitrary API Names
831(1)
12.11.5 Exposing Methods of Objects
832(2)
12.11.6 Dispatching Calls
834(3)
12.11.7 Introspection API
837(4)
Chapter 13 Email 841(46)
13.1 smtplib: Simple Mail Transfer Protocol Client
841(6)
13.1.1 Sending an Email Message
841(2)
13.1.2 Authentication and Encryption
843(3)
13.1.3 Verifying an Email Address
846(1)
13.2 smtpd: Sample Mail Servers
847(5)
13.2.1 Mail Server Base Class
847(3)
13.2.2 Debugging Server
850(1)
13.2.3 Proxy Server
851(1)
13.3 mailbox: Manipulate Email Archives
852(12)
13.3.1 mbox
852(3)
13.3.2 Maildir
855(7)
13.3.3 Message Flags
862(2)
13.3.4 Other Formats
864(1)
13.4 imaplib: IMAP4 Client Library
864(23)
13.4.1 Variations
864(1)
13.4.2 Connecting to a Server
864(2)
13.4.3 Example Configuration
866(1)
13.4.4 Listing Mailboxes
866(3)
13.4.5 Mailbox Status
869(2)
13.4.6 Selecting a Mailbox
871(1)
13.4.7 Searching for Messages
872(1)
13.4.8 Search Criteria
872(2)
13.4.9 Fetching Messages
874(6)
13.4.10 Whole Messages
880(1)
13.4.11 Uploading Messages
881(2)
13.4.12 Moving and Copying Messages
883(1)
13.4.13 Deleting Messages
884(3)
Chapter 14 Application Building Blocks 887(116)
14.1 argparse: Command-Line Option and Argument Parsing
888(28)
14.1.1 Setting Up a Parser
888(1)
14.1.2 Defining Arguments
888(1)
14.1.3 Parsing a Command Line
889(1)
14.1.4 Simple Examples
889(8)
14.1.5 Help Output
897(4)
14.1.6 Parser Organization
901(7)
14.1.7 Advanced Argument Processing
908(8)
14.2 getopt: Command-Line Option Parsing
916(6)
14.2.1 Function Arguments
916(1)
14.2.2 Short-Form Options
917(1)
14.2.3 Long-Form Options
917(1)
14.2.4 A Complete Example
918(2)
14.2.5 Abbreviating Long-Form Options
920(1)
14.2.6 GNU-Style Option Parsing
920(2)
14.2.7 Ending Argument Processing
922(1)
14.3 readline: The GNU readline Library
922(13)
14.3.1 Configuring readline
923(1)
14.3.2 Completing Text
924(3)
14.3.3 Accessing the Completion Buffer
927(4)
14.3.4 Input History
931(3)
14.3.5 Hooks
934(1)
14.4 getpass: Secure Password Prompt
935(3)
14.4.1 Example
935(2)
14.4.2 Using getpass Without a Terminal
937(1)
14.5 cmd: Line-Oriented Command Processors
938(13)
14.5.1 Processing Commands
938(2)
14.5.2 Command Arguments
940(1)
14.5.3 Live Help
941(1)
14.5.4 Auto-Completion
942(2)
14.5.5 Overriding Base Class Methods
944(2)
14.5.6 Configuring Cmd Through Attributes
946(1)
14.5.7 Running Shell Commands
947(1)
14.5.8 Alternative Inputs
948(2)
14.5.9 Commands from sys.argv
950(1)
14.6 shlex: Parse Shell-Style Syntaxes
951(9)
14.6.1 Parsing Quoted Strings
951(2)
14.6.2 Making Safe Strings for Shells
953(1)
14.6.3 Embedded Comments
954(1)
14.6.4 Splitting Strings into Tokens
954(1)
14.6.5 Including Other Sources of Tokens
955(1)
14.6.6 Controlling the Parser
956(1)
14.6.7 Error Handling
957(2)
14.6.8 POSIX Versus Non-POSIX Parsing
959(1)
14.7 configparser: Work with Configuration Files
960(20)
14.7.1 Configuration File Format
961(1)
14.7.2 Reading Configuration Files
961(2)
14.7.3 Accessing Configuration Settings
963(7)
14.7.4 Modifying Settings
970(2)
14.7.5 Saving Configuration Files
972(1)
14.7.6 Option Search Path
972(3)
14.7.7 Combining Values with Interpolation
975(5)
14.8 logging: Report Status, Error, and Informational Messages
980(6)
14.8.1 Logging Components
980(1)
14.8.2 Logging in Applications Versus Libraries
980(1)
14.8.3 Logging to a File
981(1)
14.8.4 Rotating Log Files
981(1)
14.8.5 Verbosity Levels
982(2)
14.8.6 Naming Logger Instances
984(1)
14.8.7 The Logging Tree
984(1)
14.8.8 Integration with the warnings Module
985(1)
14.9 fileinput: Command-Line Filter Framework
986(7)
14.9.1 Converting M3U Files to RSS
987(2)
14.9.2 Progress Metadata
989(1)
14.9.3 In-Place Filtering
990(3)
14.10 atexit: Program Shutdown Callbacks
993(5)
14.10.1 Registering Exit Callbacks
993(1)
14.10.2 Decorator Syntax
994(1)
14.10.3 Canceling Callbacks
994(1)
14.10.4 When Are atexit Callbacks Not Called?
995(2)
14.10.5 Handling Exceptions
997(1)
14.11 sched: Timed Event Scheduler
998(5)
14.11.1 Running Events with a Delay
999(1)
14.11.2 Overlapping Events
1000(1)
14.11.3 Event Priorities
1001(1)
14.11.4 Canceling Events
1001(2)
Chapter 15 Internationalization and Localization 1003(20)
15.1 gettext: Message Catalogs
1003(9)
15.1.1 Translation Workflow Overview
1003(1)
15.1.2 Creating Message Catalogs from Source Code
1004(3)
15.1.3 Finding Message Catalogs at Runtime
1007(1)
15.1.4 Plural Values
1008(3)
15.1.5 Application Versus Module Localization
1011(1)
15.1.6 Switching Translations
1012(1)
15.2 locale: Cultural Localization API
1012(11)
15.2.1 Probing the Current Locale
1013(5)
15.2.2 Currency
1018(1)
15.2.3 Formatting Numbers
1019(2)
15.2.4 Parsing Numbers
1021(1)
15.2.5 Dates and Times
1022(1)
Chapter 16 Developer Tools 1023(146)
16.1 pydoc: Online Help for Modules
1024(2)
16.1.1 Plain Text Help
1024(1)
16.1.2 HTML Help
1025(1)
16.1.3 Interactive Help
1026(1)
16.2 doctest: Testing Through Documentation
1026(25)
16.2.1 Getting Started
1026(2)
16.2.2 Handling Unpredictable Output
1028(4)
16.2.3 Tracebacks
1032(2)
16.2.4 Working Around Whitespace
1034(5)
16.2.5 Test Locations
1039(3)
16.2.6 External Documentation
1042(2)
16.2.7 Running Tests
1044(4)
16.2.8 Test Context
1048(3)
16.3 unittest: Automated Testing Framework
1051(18)
16.3.1 Basic Test Structure
1051(1)
16.3.2 Running Tests
1051(1)
16.3.3 Test Outcomes
1052(2)
16.3.4 Asserting Truth
1054(1)
16.3.5 Testing Equality
1054(1)
16.3.6 Almost Equal?
1055(1)
16.3.7 Containers
1056(5)
16.3.8 Testing for Exceptions
1061(1)
16.3.9 Test Fixtures
1062(3)
16.3.10 Repeating Tests with Different Inputs
1065(1)
16.3.11 Skipping Tests
1066(2)
16.3.12 Ignoring Failing Tests
1068(1)
16.4 trace: Follow Program Flow
1069(9)
16.4.1 Example Program
1069(1)
16.4.2 Tracing Execution
1069(1)
16.4.3 Code Coverage
1070(3)
16.4.4 Calling Relationships
1073(1)
16.4.5 Programming Interface
1074(2)
16.4.6 Saving Result Data
1076(1)
16.4.7 Options
1077(1)
16.5 traceback: Exceptions and Stack Traces
1078(11)
16.5.1 Supporting Functions
1079(1)
16.5.2 Examining the Stack
1079(2)
16.5.3 TracebackException
1081(1)
16.5.4 Low-Level Exception APIs
1082(4)
16.5.5 Low-Level Stack APIs
1086(3)
16.6 cgitb: Detailed Traceback Reports
1089(12)
16.6.1 Standard Traceback Dumps
1089(1)
16.6.2 Enabling Detailed Tracebacks
1090(3)
16.6.3 Local Variables in Tracebacks
1093(3)
16.6.4 Exception Properties
1096(2)
16.6.5 HTML Output
1098(1)
16.6.6 Logging Tracebacks
1098(3)
16.7 pdb: Interactive Debugger
1101(39)
16.7.1 Starting the Debugger
1101(3)
16.7.2 Controlling the Debugger
1104(13)
16.7.3 Breakpoints
1117(12)
16.7.4 Changing Execution Flow
1129(7)
16.7.5 Customizing the Debugger with Aliases
1136(1)
16.7.6 Saving Configuration Settings
1137(3)
16.8 profile and pstats: Performance Analysis
1140(8)
16.8.1 Running the Profiler
1140(3)
16.8.2 Running in a Context
1143(1)
16.8.3 pstats: Saving and Working with Statistics
1144(1)
16.8.4 Limiting Report Contents
1145(1)
16.8.5 Caller/Callee Graphs
1146(2)
16.9 timeit: Time the Execution of Small Bits of Python Code
1148(5)
16.9.1 Module Contents
1148(1)
16.9.2 Basic Example
1148(1)
16.9.3 Storing Values in a Dictionary
1149(3)
16.9.4 From the Command Line
1152(1)
16.10 tabnanny: Indentation Validator
1153(2)
16.10.1 Running from the Command Line
1153(2)
16.11 compileall: Byte-Compile Source Files
1155(5)
16.11.1 Compiling One Directory
1155(1)
16.11.2 Ignoring Files
1156(1)
16.11.3 Compiling sys.path
1157(1)
16.11.4 Compiling Individual Files
1157(1)
16.11.5 From the Command Line
1158(2)
16.12 pyclbr: Class Browser
1160(3)
16.12.1 Scanning for Classes
1161(1)
16.12.2 Scanning for Functions
1162(1)
16.13 venv: Create Virtual Environments
1163(4)
16.13.1 Creating Environments
1163(1)
16.13.2 Contents of a Virtual Environment
1164(1)
16.13.3 Using Virtual Environments
1165(2)
16.14 ensurepip: Install the Python Package Installer
1167(2)
16.14.1 Installing pip
1167(2)
Chapter 17 Runtime Features 1169(110)
17.1 site: Site-wide Configuration
1169(9)
17.1.1 Import Path
1169(2)
17.1.2 User Directories
1171(1)
17.1.3 Path Configuration Files
1172(3)
17.1.4 Customizing Site Configuration
1175(1)
17.1.5 Customizing User Configuration
1176(1)
17.1.6 Disabling the site Module
1177(1)
17.2 sys: System-Specific Configuration
1178(49)
17.2.1 Interpreter Settings
1178(7)
17.2.2 Runtime Environment
1185(2)
17.2.3 Memory Management and Limits
1187(7)
17.2.4 Exception Handling
1194(3)
17.2.5 Low-Level Thread Support
1197(3)
17.2.6 Modules and Imports
1200(21)
17.2.7 Tracing a Program As It Runs
1221(6)
17.3 os: Portable Access to Operating System-Specific Features
1227(19)
17.3.1 Examining the File System Contents
1228(2)
17.3.2 Managing File System Permissions
1230(3)
17.3.3 Creating and Deleting Directories
1233(1)
17.3.4 Working with Symbolic Links
1234(1)
17.3.5 Safely Replacing an Existing File
1234(1)
17.3.6 Detecting and Changing the Process Owner
1235(2)
17.3.7 Managing the Process Environment
1237(1)
17.3.8 Managing the Process Working Directory
1238(1)
17.3.9 Running External Commands
1239(1)
17.3.10 Creating Processes with os.fork()
1240(2)
17.3.11 Waiting for Child Processes
1242(2)
17.3.12 Spawning New Processes
1244(1)
17.3.13 Operating System Error Codes
1245(1)
17.4 platform: System Version Information
1246(5)
17.4.1 Interpreter
1246(1)
17.4.2 Platform
1247(1)
17.4.3 Operating System and Hardware Information
1248(2)
17.4.4 Executable Architecture
1250(1)
17.5 resource: System Resource Management
1251(3)
17.5.1 Current Usage
1251(1)
17.5.2 Resource Limits
1252(2)
17.6 gc: Garbage Collector
1254(16)
17.6.1 Tracing References
1255(3)
17.6.2 Forcing Garbage Collection
1258(1)
17.6.3 Finding References to Objects That Cannot Be Collected
1259(2)
17.6.4 Collection Thresholds and Generations
1261(4)
17.6.5 Debugging
1265(5)
17.7 sysconfig: Interpreter Compile-Time Configuration
1270(9)
17.7.1 Configuration Variables
1270(2)
17.7.2 Installation Paths
1272(4)
17.7.3 Python Version and Platform
1276(3)
Chapter 18 Language Tools 1279(50)
18.1 warnings: Non-fatal Alerts
1279(8)
18.1.1 Categories and Filtering
1280(1)
18.1.2 Generating Warnings
1280(1)
18.1.3 Filtering with Patterns
1281(2)
18.1.4 Repeated Warnings
1283(1)
18.1.5 Alternative Message Delivery Functions
1284(1)
18.1.6 Formatting
1285(1)
18.1.7 Stack Level in Warnings
1286(1)
18.2 abc: Abstract Base Classes
1287(9)
18.2.1 How ABCs Work
1287(1)
18.2.2 Registering a Concrete Class
1287(1)
18.2.3 Implementation Through Subclassing
1288(1)
18.2.4 Helper Base Class
1289(1)
18.2.5 Incomplete Implementations
1290(1)
18.2.6 Concrete Methods in ABCs
1291(1)
18.2.7 Abstract Properties
1292(3)
18.2.8 Abstract Class and Static Methods
1295(1)
18.3 dis: Python Byte-Code Disassembler
1296(15)
18.3.1 Basic Disassembly
1297(1)
18.3.2 Disassembling Functions
1297(3)
18.3.3 Classes
1300(1)
18.3.4 Source Code
1301(1)
18.3.5 Using Disassembly to Debug
1302(1)
18.3.6 Performance Analysis of Loops
1303(6)
18.3.7 Compiler Optimizations
1309(2)
18.4 inspect: Inspect Live Objects
1311(18)
18.4.1 Example Module
1311(1)
18.4.2 Inspecting Modules
1312(2)
18.4.3 Inspecting Classes
1314(2)
18.4.4 Inspecting Instances
1316(1)
18.4.5 Documentation Strings
1316(2)
18.4.6 Retrieving Source
1318(1)
18.4.7 Method and Function Signatures
1319(3)
18.4.8 Class Hierarchies
1322(1)
18.4.9 Method Resolution Order
1323(1)
18.4.10 The Stack and Frames
1324(3)
18.4.11 Command-Line Interface
1327(2)
Chapter 19 Modules and Packages 1329(22)
19.1 importlib: Python's Import Mechanism
1329(5)
19.1.1 Example Package
1329(1)
19.1.2 Module Types
1330(1)
19.1.3 Importing Modules
1331(1)
19.1.4 Loaders
1332(2)
19.2 pkgutil: Package Utilities
1334(10)
19.2.1 Package Import Paths
1334(2)
19.2.2 Development Versions of Packages
1336(2)
19.2.3 Managing Paths with PKG Files
1338(2)
19.2.4 Nested Packages
1340(1)
19.2.5 Package Data
1341(3)
19.3 zipimport: Load Python Code from ZIP Archives
1344(7)
19.3.1 Example
1344(1)
19.3.2 Finding a Module
1345(1)
19.3.3 Accessing Code
1345(1)
19.3.4 Source
1346(2)
19.3.5 Packages
1348(1)
19.3.6 Data
1348(3)
Appendix A: Porting Notes 1351(16)
A.1 References
1351(1)
A.2 New Modules
1352(1)
A.3 Renamed Modules
1352(2)
A.4 Removed Modules
1354(1)
A.4.1 bsddb
1354(1)
A.4.2 commands
1354(1)
A.4.3 compiler
1354(1)
A.4.4 dircache
1354(1)
A.4.5 EasyDialogs
1354(1)
A.4.6 exceptions
1354(1)
A.4.7 htmllib
1354(1)
A.4.8 md5
1354(1)
A.4.9 mimetools, MimeWriter, mimify, multifile, and rfc822
1354(1)
A.4.10 popen2
1354(1)
A.4.11 posixfile
1355(1)
A.4.12 sets
1355(1)
A.4.13 sha
1355(1)
A.4.14 sre
1355(1)
A.4.15 statvfs
1355(1)
A.4.16 thread
1355(1)
A.4.17 user
1355(1)
A.5 Deprecated Modules
1355(1)
A.5.1 asyncore and asynchat
1355(1)
A.5.2 formatter
1355(1)
A.5.3 imp
1356(1)
A.5.4 optparse
1356(1)
A.6 Summary of Changes to Modules
1356(11)
A.6.1 abc
1356(1)
A.6.2 anydbm
1356(1)
A.6.3 argparse
1356(1)
A.6.4 array
1357(1)
A.6.5 atexit
1357(1)
A.6.6 base64
1357(1)
A.6.7 bz2
1357(1)
A.6.8 collections
1357(1)
A.6.9 comands
1357(1)
A.6.10 configparser
1358(1)
A.6.11 contextlib
1358(1)
A.6.12 csv
1358(1)
A.6.13 datetime
1358(1)
A.6.14 decimal
1358(1)
A.6.15 fractions
1358(1)
A.6.16 gc
1358(1)
A.6.17 gettext
1359(1)
A.6.18 glob
1359(1)
A.6.19 http.cookies
1359(1)
A.6.20 imaplib
1359(1)
A.6.21 inspect
1359(1)
A.6.22 itertools
1359(1)
A.6.23 json
1359(1)
A.6.24 locale
1359(1)
A.6.25 logging
1360(1)
A.6.26 mailbox
1360(1)
A.6.27 mmap
1360(1)
A.6.28 operator
1360(1)
A.6.29 os
1360(1)
A.6.30 os.path
1361(1)
A.6.31 pdb
1361(1)
A.6.32 pickle
1361(1)
A.6.33 pipes
1362(1)
A.6.34 platform
1362(1)
A.6.35 random
1362(1)
A.6.36 re
1362(1)
A.6.37 shelve
1362(1)
A.6.38 signal
1362(1)
A.6.39 socket
1362(1)
A.6.40 socketserver
1363(1)
A.6.41 string
1363(1)
A.6.42 struct
1363(1)
A.6.43 subprocess
1363(1)
A.6.44 sys
1363(1)
A.6.45 threading
1364(1)
A.6.46 time
1364(1)
A.6.47 unittest
1364(1)
A.6.48 UserDict, UserList, and UserString
1365(1)
A.6.49 uuid
1365(1)
A.6.50 whichdb
1365(1)
A.6.51 xml.etree.ElementTree
1365(1)
A.6.52 zipimport
1365(2)
Appendix B: Outside of the Standard Library 1367(6)
B.1 Text
1367(1)
B.2 Algorithms
1367(1)
B.3 Dates and Times
1368(1)
B.4 Mathematics
1368(1)
B.5 Data Persistence and Exchange
1368(1)
B.6 Cryptography
1369(1)
B.7 Concurrency with Processes, Threads, and Coroutines
1369(1)
B.8 The Internet
1369(1)
B.9 Email
1370(1)
B.10 Application Building Blocks
1370(1)
B.11 Developer Tools
1371(2)
Index of Python Modules 1373
Index 13759781496377258(934850647)
Unit 1: The Aging Experience 1(72)
1 The Aging Population
2(9)
Views of Older Adults Through History
3(1)
Characteristics of the Older Adult Population
3(3)
Population Growth and Increasing Life Expectancy
4(1)
Marital Status and Living Arrangements
5(1)
Income and Employment
5(1)
Health Insurance
6(2)
Health Status
7(1)
Implications of an Aging Population
8(3)
Impact of the Baby Boomers
8(1)
Provision of and Payment for Services
9(2)
2 Theories of Aging
11(13)
Biological Theories of Aging
12(4)
Stochastic Theories
13(1)
Nonstochastic Theories
14(2)
Sociologic Theories of Aging
16(2)
Disengagement Theory
16(1)
Activity Theory
16(1)
Continuity Theory
17(1)
Subculture Theory
17(1)
Age Stratification Theory
17(1)
Psychological Theories of Aging
18(1)
Developmental Tasks
18(1)
Gerotranscendence
18(1)
Nursing Theories of Aging
18(1)
Functional Consequences Theory
18(1)
Theory of Thriving
19(1)
Theory of Successful Aging
19(1)
Applying Theories of Aging to Nursing Practice
19(5)
3 Diversity
24(13)
Increasing Diversity of the Older Adult Population
25(1)
Overview of Diverse Groups of Older Adults in the United States
25(7)
Hispanic Americans
26(1)
Black Americans
27(1)
Asian Americans
28(2)
Jewish Americans
30(1)
Native Americans
30(1)
Muslims
31(1)
Gay, Lesbian, Bisexual, and Transgender Older Adults
32(1)
Nursing Considerations for Culturally Sensitive Care of Older Adults
32(5)
4 Life Transitions and Story
37(17)
Ageism
38(1)
Changes in Family Roles and Relationships
38(3)
Parenting
39(1)
Grandparenting
39(2)
Loss of Spouse
41(1)
Retirement
42(2)
Loss of the Work Role
42(1)
Reduced Income
43(1)
Changes in Health and Functioning
44(1)
Cumulative Effects of Life Transitions
45(2)
Shrinking Social World
45(1)
Awareness of Mortality
46(1)
Responding to Life Transitions
47(7)
Life Review and Life Story
47(1)
Self-Reflection
48(2)
Strengthening Inner Resources
50(4)
5 Common Aging Changes
54(19)
Changes to the Body
55(12)
Cells
55(1)
Physical Appearance
55(1)
Respiratory System
56(1)
Cardiovascular System
57(1)
Gastrointestinal System
58(1)
Urinary System
59(1)
Reproductive System
60(1)
Musculoskeletal System
61(1)
Nervous System
62(1)
Sensory Organs
63(2)
Endocrine System
65(1)
Integumentary System
66(1)
Immune System
66(1)
Thermoregulation
66(1)
Changes to the Mind
67(1)
Personality
67(1)
Memory
67(1)
Intelligence
67(1)
Learning
67(1)
Attention Span
68(1)
Nursing Implications of Age-Related Changes
68(5)
Unit 2: Foundations Of Gerontological Nursing 73(68)
6 The Specialty of Gerontological Nursing
74(17)
Development of Gerontological Nursing
75(2)
Core Elements of Gerontological Nursing Practice
77(4)
Evidence-Based Practice
77(1)
Standards
77(1)
Competencies
77(1)
Principles
78(3)
Gerontological Nursing Roles
81(2)
Healer
81(1)
Caregiver
82(1)
Educator
82(1)
Advocate
83(1)
Innovator
83(1)
Advanced Practice Nursing Roles
83(1)
Self-Care and Nurturing
83(2)
Following Positive Health Care Practices
83(1)
Strengthening and Building Connections
83(2)
Committing to a Dynamic Process
85(1)
The Future of Gerontological Nursing
85(6)
Utilize Evidence-Based Practices
86(1)
Advance Research
86(1)
Promote Integrative Care
87(1)
Educate Caregivers
87(1)
Develop New Roles
88(1)
Balance Quality Care and Health Care Costs
88(3)
7 Holistic Assessment and Care Planning
91(14)
Holistic Gerontological Care
92(1)
Holistic Assessment of Needs
92(3)
Health Promotion-Related Needs
93(1)
Health Challenges-Related Needs
94(1)
Requisites to Meet Needs
94(1)
Gerontological Nursing Processes
95(1)
Examples of Application
95(7)
Applying the Holistic Model: The Case of Mrs. D
96(6)
The Nurse as Healer
102(3)
Healing Characteristics
102(3)
8 Legal Aspects of Gerontological Nursing
105(12)
Laws Governing Gerontological Nursing Practice
106(1)
Legal Risks in Gerontological Nursing
106(8)
Malpractice
106(3)
Confidentiality
109(1)
Patient Consent
109(1)
Patient Competency
110(1)
Staff Supervision
111(1)
Medications
111(1)
Restraints
111(1)
Telephone Orders
112(1)
Do Not Resuscitate Orders
112(1)
Advance Directives and Issues Related to Death and Dying
112(2)
Elder Abuse
114(1)
Legal Safeguards for Nurses
114(3)
9 Ethical Aspects of Gerontological Nursing
117(9)
Philosophies Guiding Ethical Thinking
118(1)
Ethics in Nursing
118(2)
External and Internal Ethical Standards
118(1)
Ethical Principles
119(1)
Cultural Considerations
119(1)
Ethical Dilemmas Facing Gerontological Nurses
120(6)
Changes Increasing Ethical Dilemmas for Nurses
122(1)
Measures to Help Nurses Make Ethical Decisions
123(3)
10 Continuum of Care in Gerontological Nursing
126(15)
Services in the Continuum of Care for Older Adults
127(10)
Supportive and Preventive Services
128(3)
Partial and Intermittent Care Services
131(4)
Complete and Continuous Care Services
135(1)
Complementary and Alternative Services
136(1)
Matching Services to Needs
137(1)
Settings and Roles for Gerontological Nurses
137(4)
Unit 3: Health Promotion 141(110)
11 Nutrition and Hydration
142(14)
Nutritional Needs of Older Adults
143(4)
Quantity and Quality of Caloric Needs
143(3)
Nutritional Supplements
146(1)
Special Needs of Women
147(1)
Hydration Needs of Older Adults
147(1)
Promotion of Oral Health
148(1)
Threats to Good Nutrition
149(1)
Indigestion and Food Intolerance
149(2)
Anorexia
149(1)
Dysphagia
150(1)
Constipation
150(1)
Malnutrition
150(1)
Addressing Nutritional Status and Hydration in Older Adults
151(5)
12 Sleep and Rest
156(10)
Age-Related Changes in Sleep
157(1)
Circadian Sleep-Wake Cycles
157(1)
Sleep Stages
157(1)
Sleep Efficiency and Quality
157(1)
Sleep Disturbances
158(2)
Insomnia
158(1)
Nocturnal Myoclonus and Restless Legs Syndrome
159(1)
Sleep Apnea
159(1)
Medical Conditions That Affect Sleep
159(1)
Drugs That Affect Sleep
160(1)
Other Factors Affecting Sleep
160(1)
Promoting Rest and Sleep in Older Adults
160(6)
Pharmacologic Measures to Promote Sleep
160(1)
Nonpharmacologic Measures to Promote Sleep
161(2)
Pain Control
163(3)
13 Comfort and Pain Management
166(11)
Comfort
167(1)
Pain: A Complex Phenomenon
167(1)
Prevalence of Pain in Older Adults
167(1)
Types of Pain
167(1)
Pain Perception
168(1)
Effects of Unrelieved Pain
168(1)
Pain Assessment
168(2)
An Integrative Approach to Pain Management
170(7)
Complementary Therapies
170(3)
Dietary Changes
173(1)
Medication
173(1)
Comforting
174(3)
14 Safety
177(20)
Aging and Risks to Safety
178(1)
Importance of the Environment to Health and Wellness
178(2)
Impact of Aging on Environmental Safety and Function
180(7)
Lighting
182(1)
Temperature
182(1)
Colors
183(1)
Scents
183(1)
Floor Coverings
183(1)
Furniture
184(1)
Sensory Stimulation
184(1)
Noise Control
184(1)
Bathroom Hazards
185(1)
Fire Hazards
185(1)
Psychosocial Considerations
186(1)
The Problem of Falls
187(3)
Risks and Prevention
187(1)
Risks Associated With Restraints
188(2)
Interventions to Reduce Intrinsic Risks to Safety
190(7)
Reducing Hydration and Nutrition Risks
190(1)
Addressing Risks Associated With Sensory Deficits
191(1)
Addressing Risks Associated With Mobility Limitations
191(1)
Monitoring Body Temperature
192(1)
Preventing Infection
192(1)
Suggesting Sensible Clothing
192(1)
Using Medications Cautiously
192(1)
Avoiding Crime
193(1)
Promoting Safe Driving
193(1)
Promoting Early Detection of Problems
193(1)
Addressing Risks Associated With Functional Impairment
194(3)
15 Spirituality
197(10)
Spiritual Needs
198(1)
Love
198(1)
Meaning and Purpose
198(1)
Hope
198(1)
Dignity
198(1)
Forgiveness
198(1)
Gratitude
198(1)
Transcendence
199(1)
Expression of Faith
199(1)
Assessing Spiritual Needs
199(1)
Addressing Spiritual Needs
200(7)
Being Available
200(1)
Honoring Beliefs and Practices
200(1)
Providing Opportunities for Solitude
200(3)
Promoting Hope
203(1)
Assisting in Discovering Meaning in Challenging Situations
204(1)
Facilitating Religious Practices
204(1)
Praying With and for
204(3)
16 Sexuality and Intimacy
207(17)
Attitudes toward Sex and Older Adults
208(1)
Realities of Sex in Older Adulthood
209(1)
Sexual Behavior and Roles
209(1)
Intimacy
210(1)
Age-Related Changes and Sexual Response
210(1)
Menopause as a Journey to Inner Connection
210(4)
Symptom Management and Patient Education
212(1)
Self-Acceptance
213(1)
Andropause
214(1)
Identifying Barriers to Sexual Activity
214(6)
Unavailability of a Partner
215(1)
Psychological Barriers
215(3)
Medical Conditions
218(1)
Erectile Dysfunction
218(2)
Medication Adverse Effects
220(1)
Cognitive Impairment
220(1)
Promoting Healthy Sexual Function
220(4)
17 Safe Medication Use
224(27)
Effects of Aging on Medication Use
225(5)
Polypharmacy and Interactions
225(3)
Altered Pharmacokinetics
228(2)
Altered Pharmacodynamics
230(1)
Increased Risk of Adverse Reactions
230(1)
Promoting the Safe Use of Drugs
230(5)
Avoiding Potentially Inappropriate Drugs: Beers Criteria
230(1)
Reviewing Necessity and Effectiveness of Prescribed Drugs
230(3)
Promoting Safe and Effective Administration
233(1)
Providing Patient Teaching
234(1)
Monitoring Laboratory Values
235(1)
Alternatives to Drugs
235(1)
Review of Selected Drugs
236(16)
Analgesics
236(1)
Antacids
237(1)
Antibiotics
238(1)
Anticoagulants
238(1)
Anticonvulsants
239(1)
Antidiabetic (Hypoglycemic) Drugs
240(1)
Antihypertensive Drugs
240(1)
Nonsteroidal Anti-inflammatory Drugs
241(1)
Cholesterol-Lowering Drugs
242(1)
Cognitive Enhancing Drugs
243(1)
Digoxin
243(1)
Diuretics
244(1)
Laxatives
244(1)
Psychoactive Drugs
245(6)
Unit 4: Geriatric Care 251(204)
18 Respiration
252(16)
Effects of Aging on Respiratory Health
253(1)
Respiratory Health Promotion
253(4)
Selected Respiratory Conditions
257(5)
Chronic Obstructive Pulmonary Disease
257(3)
Pneumonia
260(1)
Influenza
261(1)
Lung Cancer
261(1)
Lung Abscess
262(1)
General Nursing Considerations for Respiratory Conditions
262(1)
Recognizing Symptoms
262(1)
Preventing Complications
262(1)
Ensuring Safe Oxygen Administration
263(5)
Performing Postural Drainage
263(1)
Promoting Productive Coughing
264(1)
Using Complementary Therapies
264(1)
Promoting Self-Care
265(1)
Providing Encouragement
266(2)
19 Circulation
268(24)
Effects of Aging on Cardiovascular Health
269(1)
Cardiovascular Health Promotion
269(3)
Proper Nutrition
270(1)
Adequate Exercise
271(1)
Cigarette Smoke Avoidance
271(1)
Stress Management
271(1)
Proactive Interventions
271(1)
Cardiovascular Disease and Women
272(1)
Selected Cardiovascular Conditions
272(13)
Hypertension
272(5)
Hypotension
277(1)
Congestive Heart Failure
277(1)
Pulmonary Emboli
278(2)
Coronary Artery Disease
280(1)
Hyperlipidemia
281(1)
Arrhythmias
282(1)
Peripheral Vascular Disease
282(3)
General Nursing Considerations for Cardiovascular Conditions
285(7)
Prevention
285(1)
Keeping the Patient Informed
285(1)
Preventing Complications
285(1)
Promoting Circulation
286(1)
Providing Foot Care
287(1)
Managing Problems Associated With Peripheral Vascular Disease
287(1)
Promoting Normality
288(1)
Integrating Complementary Therapies
288(4)
20 Digestion and Bowel Elimination
292(15)
Effects of Aging on Gastrointestinal Health
293(1)
Gastrointestinal Health Promotion
293(4)
Selected Gastrointestinal Conditions and Related Nursing Considerations
297(10)
Dry Mouth (Xerostomia)
297(1)
Dental Problems
297(1)
Dysphagia
298(1)
Hiatal Hernia
299(1)
Esophageal Cancer
299(1)
Peptic Ulcer
299(1)
Cancer of the Stomach
300(1)
Diverticular Disease
301(1)
Colorectal Cancer
301(1)
Chronic Constipation
302(1)
Flatulence
303(1)
Intestinal Obstruction
303(1)
Fecal Impaction
304(1)
Fecal Incontinence
304(1)
Acute Appendicitis
305(1)
Cancer of the Pancreas
305(1)
Biliary Tract Disease
305(2)
21 Urinary Elimination
307(12)
Effects of Aging on Urinary Elimination
308(1)
Urinary System Health Promotion
309(2)
Selected Urinary Conditions
311(5)
Urinary Tract Infection
311(1)
Urinary Incontinence
312(4)
Bladder Cancer
316(1)
Renal Calculi
316(1)
Glomerulonephritis
316(1)
General Nursing Considerations for Urinary Conditions
316(3)
22 Reproductive System Health
319(9)
Effects of Aging on the Reproductive System
320(1)
Reproductive System Health Promotion
320(1)
Selected Reproductive System Conditions
320(8)
Problems of the Female Reproductive System
320(4)
Problems of the Male Reproductive System
324(4)
23 Mobility
328(24)
Effects of Aging on Musculoskeletal Function
329(1)
Musculoskeletal Health Promotion
329(9)
Promotion of Physical Exercise in All Age Groups
329(2)
Exercise Programs Tailored for Older Adults
331(2)
The Mind-Body Connection
333(3)
Prevention of Inactivity
336(2)
Nutrition
338(1)
Selected Musculoskeletal Conditions
338(10)
Fractures
338(4)
Osteoarthritis
342(2)
Rheumatoid Arthritis
344(1)
Osteoporosis
345(1)
Gout
346(1)
Podiatric Conditions
346(2)
General Nursing Considerations for Musculoskeletal Conditions
348(4)
Managing Pain
348(1)
Preventing Injury
348(1)
Promoting Independence
349(3)
24 Neurologic Function
352(12)
Effects of Aging on the Nervous System
353(1)
Neurologic Health Promotion
353(3)
Selected Neurologic Conditions
356(5)
Parkinson's Disease
356(1)
Transient Ischemic Attacks
357(1)
Cerebrovascular Accidents
358(3)
General Nursing Considerations for Neurologic Conditions
361(3)
Promoting Independence
361(1)
Preventing Injury
361(3)
25 Vision and Hearing
364(14)
Effects of Aging on Vision and Hearing
365(1)
Sensory Health Promotion
365(3)
Promoting Vision
365(1)
Promoting Hearing
366(1)
Assessing Problems
366(2)
Selected Vision and Hearing Conditions and Related Nursing Interventions
368(8)
Visual Deficits
368(6)
Hearing Deficits
374(2)
General Nursing Considerations for Visual and Hearing Deficits
376(2)
26 Endocrine Function
378(12)
Effects of Aging on Endocrine Function
379(1)
Selected Endocrine Conditions and Related Nursing Considerations
379(11)
Diabetes Mellitus
379(8)
Hypothyroidism
387(1)
Hyperthyroidism
387(3)
27 Skin Health
390(11)
Effects of Aging on the Skin
391(1)
Promotion of Skin Health
391(1)
Selected Skin Conditions
392(6)
Pruritus
392(1)
Keratosis
393(1)
Seborrheic Keratosis
394(1)
Skin Cancer
394(1)
Vascular Lesions
395(1)
Pressure Injury
396(2)
General Nursing Considerations for Skin Conditions
398(3)
Promoting Normalcy
398(1)
Using Alternative Therapies
399(2)
28 Cancer
401(9)
Aging and Cancer
402(1)
Unique Challenges for Older Persons With Cancer
402(1)
Explanations for Increased Incidence in Old Age
402(1)
Risk Factors, Prevention, and Screening
402(2)
Treatment
404(2)
Conventional Treatment
404(1)
Complementary and Alternative Medicine
405(1)
Nursing Considerations for Older Adults With Cancer
406(4)
Providing Patient Education
406(1)
Promoting Optimum Care
406(1)
Providing Support to Patients and Families
406(4)
29 Mental Health Disorders
410(17)
Aging and Mental Health
411(1)
Promoting Mental Health in Older Adults
411(1)
Selected Mental Health Conditions
412(9)
Depression
412(6)
Anxiety
418(1)
Substance Abuse
419(1)
Paranoia
420(1)
Nursing Considerations for Mental Health Conditions
421(6)
Monitoring Medications
421(1)
Promoting a Positive Self-Concept
421(1)
Managing Behavioral Problems
421(6)
30 Delirium and Dementia
427(15)
Delirium
428(3)
Dementia
431(11)
Alzheimer's Disease
431(3)
Other Dementias
434(1)
Caring for Persons With Dementia
435(7)
31 Living in Harmony With Chronic Conditions
442(13)
Chronic Conditions and Older Adults
443(1)
Goals for Chronic Care
443(3)
Assessment of Chronic Care Needs
446(1)
Maximizing the Benefits of Chronic Care
447(3)
Selecting an Appropriate Physician
447(1)
Using a Chronic Care Coach
447(1)
Increasing Knowledge
448(1)
Locating a Support Group
448(1)
Making Smart Lifestyle Choices
448(1)
Using Complementary and Alternative Therapies
448(2)
Factors Affecting the Course of Chronic Care
450(1)
Defense Mechanisms and Implications
450(1)
Psychosocial Factors
450(1)
Impact of Ongoing Care on the Family
451(1)
The Need for Institutional Care
451(1)
Chronic Care: A Nursing Challenge
451(4)
Unit 5: Settings And Special Issues In Geriatric Care 455(70)
32 Rehabilitative and Restorative Care
456(17)
Rehabilitative and Restorative Care
457(1)
Living With Disability
458(1)
Importance of Attitude and Coping Capacity
458(1)
Losses Accompanying Disability
458(1)
Principles of Rehabilitative Nursing
459(1)
Functional Assessment
459(2)
Interventions to Facilitate and Improve Functioning
461(12)
Facilitating Proper Positioning
461(1)
Assisting With Range-of-Motion Exercises
461(1)
Assisting With Mobility Aids and Assistive Technology
462(4)
Teaching About Bowel and Bladder Training
466(3)
Maintaining and Promoting Mental Function
469(1)
Using Community Resources
470(3)
33 Acute Care
473(14)
Risks Associated With Hospitalization of Older Adults
474(1)
Surgical Care
475(3)
Special Risks for Older Adults
475(1)
Preoperative Care Considerations
475(2)
Operative and Postoperative Care Considerations
477(1)
Emergency Care
478(4)
Infections
482(1)
Discharge Planning for Older Adults
483(4)
34 Long-Term Care
487(13)
Development of Long-Term Institutional Care
488(2)
Before the 20th Century
488(1)
During the 20th Century
488(1)
Lessons to Be Learned From History
489(1)
Nursing Homes Today
490(5)
Nursing Home Standards
490(1)
Nursing Home Residents
490(3)
Nursing Roles and Responsibilities
493(2)
Other Settings for Long-Term Care
495(1)
Assisted Living Communities
495(1)
Community-Based and Home Health Care
495(1)
Looking Forward: A New Model of Long-Term Care
496(4)
35 Family Caregiving
500(11)
The Older Adult's Family
501(2)
Identification of Family Members
501(1)
Family Member Roles
501(1)
Family Dynamics and Relationships
502(1)
Scope of Family Caregiving
503(1)
Long-Distance Caregiving
504(1)
Protecting the Health of the Older Adult and Caregiver
505(2)
Family Dysfunction and Abuse
507(1)
Rewards of Family Caregiving
508(3)
36 End-of-Life Care
511(14)
Definitions of Death
512(1)
Family Experience With the Dying Process
512(1)
Supporting the Dying Individual
513(8)
Stages of the Dying Process and Related Nursing Interventions
514(3)
Rational Suicide and Assisted Suicide
517(1)
Physical Care Challenges
518(1)
Spiritual Care Needs
519(1)
Signs of Imminent Death
520(1)
Advance Directives
520(1)
Supporting Family and Friends
521(1)
Supporting Through the Stages of the Dying Process
521(1)
Helping Family and Friends After a Death
522(1)
Supporting Nursing Staff
522(3)
Index 525
Doug Hellmann is currently employed by Red Hat to work on OpenStack. He is on the OpenStack Technical Committee and contributes to many aspects of the project. He has been programming in Python since version 1.4, and has worked on a variety of UNIX and non-UNIX platforms for projects in fields such as mapping, medical news publishing, banking, and data center automation. Doug is a Fellow of the Python Software Foundation and served as its Communications Director from 2010-2012. After a year as a regular columnist for Python Magazine, he served as Editor-in-Chief from 2008-2009. Between 2007 and 2011, Doug published the popular "Python Module of the Week" series on his blog, and an earlier version of this book (for Python 2), The Python Standard Library By Example (Addison-Wesley, 2011). He lives in Athens, Georgia.