Index
A
- abstract base classes, Python / Abstract base classes in Python
- abstract factory pattern
- about / Abstract factory pattern
- accessory store / Abstract factory scenario – An accessory store
- problem / Abstract factory – The problem
- design, rethinking / Abstract factory – Rethinking the design
- design, simplifying / Simplifying the design further
- Pythonic approach / Abstract factory solution – Pythonic approach
- adapter design pattern
- about / Adapter pattern
- Elf's distant cousin / Adapter scenario – Elf's distant cousin
- problem / Adapter – The problem
- attempted solution / Adapter – Attempted solution
- Pythonic approach / Adapter solution – Pythonic approach
- multiple adapter methods / Adapter – Multiple adapter methods
- advanced mathematical operations, NumPy arrays
- numpy.ndarray.tolist / numpy.ndarray.tolist
- numpy.reshape / numpy.reshape
- numpy.random / numpy.random
- numpy.dstack / numpy.dstack
- numpy.einsum / numpy.einsum
- Agile development methodology
- about / When to refactor?
- reference / When to refactor?
- algorithm complexity
- about / Algorithm complexity
- algorithm efficiency
- about / Algorithm efficiency
- Anaconda
- reference / Option 2 – bundled distribution, Installing NumPy
- API compatibility
- about / Serial increments
- API level documentation / Documenting the code
- Application Programming Interface (API)
- about / Serial increments
- array objects
- creating / Creating array objects
- array operations
- about / Simple array operations
- Attack of the Orcs v0.0.1 game
- about / Simple script – Attack of the Orcs v0.0.1
- problem statement / Problem statement
- pseudo code / Pseudo code – version 0.0.1
- code, reviewing / Reviewing the code
- running / Running Attack of the Orcs v0.0.1
- preparatory work / Preparatory work
- custom exceptions, demonstrating / Custom exception – The problem
- new exception class, writing / Writing a new exception class
- exception class, expanding / Expanding the exception class
- inheritance, from exception class / Inheriting from the exception class
- Attack of the Orcs v0.0.5 game
- about / Using functions – Attack of the Orcs v0.0.5
- pseudo code / Pseudo code with attack feature – Version 0.0.5
- code, reviewing / Reviewing the code
- running / Running Attack of the Orcs v0.0.5
- Attack of the Orcs v1.0.0 game
- OOP, using / Using OOP – Attack of the Orcs v1.0.0
- feature requests, prioritizing / Prioritize the feature requests
- problem statement / Problem statement
- code, redesigning / Redesigning the code
- big picture, painting / Painting the big picture
- pseudo UML representation / Pseudo UML representation
- code, reviewing / Reviewing the code
- running / Running Attack of the Orcs v1.0.0
- about / Revisiting Attack of the Orcs v1.0.0
- problem, debugging / Debugging the problem
- bugs, fixing / Fixing the bugs…
- Attack of the Orcs v1.1.0 game
- about / Back to the game – Attack of the Orcs v1.1.0
- preparatory work / Preparatory work
- exception handling code, adding / Adding the exception handling code
- running / Running Attack of the Orcs v1.1.0
- Attack of the Orcs v2.0.0 game
- about / Attack of the Orcs v2.0.0
- Attack of the Orcs v6.0.0 game
- Attack of the Orcs V10.0.0 game
- about / Project-1 – Attack of the Orcs V10.0.0
- background scenario / Background scenario
- problem statement / Problem statement
- code, writing / Writing the code
- HutGame class / Overview of the class HutGame
- __init__ method / The __init__ method
- occupy_huts method / The occupy_huts method
- create_widgets method / The create_widgets method
- setup_layout method / The setup_layout method
- radio_btn_pressed method / The radio_btn_pressed and enter_hut methods
- enter_hut method method / The radio_btn_pressed and enter_hut methods
- announce_winner method / The announce_winner method
- running / Running the application
- Attack of the Orcs v10.1.0 game
- about / Project 2 – Attack of the Orcs v10.1.0
- HutGame class, writing / Revisiting the HutGame class
- MVC classes, creating / Creating MVC classes
- communication, between MVC objects / Communication between MVC objects
- Controller to Model, or View communication / Controller to Model or View communication
- Model to Controller communication / Model to Controller communication
- View to Controller communication / View to Controller communication
- code, reviewing / Reviewing the code
- Controller class / The Controller class
- Model class / The Model class
- View class / The View class
- running / Running the application
- autopep8
- about / PEP8 and AutoPEP8
- average-case complexity
- about / O(n log n) – Log linear
- average-case time complexity
- about / Upper bound of the complexity
- reference / Upper bound of the complexity
B
- backward compatible API
- about / Serial increments
- bare Git repository
- creating / Creating a bare remote repository
- Bash shell / Unix-like operating systems
- batch executing
- unit tests / Batch executing unit tests
- bdist
- behavioral patterns
- about / Behavioral patterns
- bicycle repair man
- about / Refactoring tools for Python
- reference / Refactoring tools for Python
- big O complexity classes
- reviewing / Big O complexity classes
- Big O complexity classes
- O(1) - constant time / O(1) – constant time
- O(log n) - logarithmic / O(log n) – logarithmic
- O(n) - linear-time / O(n) – Linear time
- (n log n) - log linear / O(n log n) – Log linear
- O(n2) - quadratic / O(n2) – Quadratic
- O(n3) - cubic / O(n3) – cubic
- upper bound of complexity / Upper bound of the complexity
- big O notation
- about / Big O notation
- reference / O(n3) – cubic
- binary search algorithm
- about / O(log n) – logarithmic
- reference / O(log n) – logarithmic
- bottlenecks, Gold Hunt application
- identifying / Identifying the bottlenecks
- execution time, measuring / Measuring the execution time
- runtime, measuring of small code snippets / Measuring the runtime of small code snippets
- code profiling / Code profiling
- broadcasting
- about / Broadcasting
- bubble sort algorithm
- reference / O(n2) – Quadratic
- built-in exceptions
- reference / Most common exceptions
- bundled distribution, Python
- official Python distribution / Option 2 – bundled distribution
- Anaconda / Option 2 – bundled distribution
- Enthought Canopy Express / Option 2 – bundled distribution
- Python(x, y) / Option 2 – bundled distribution
C
- classes
- as first-class objects / Classes as first-class objects
- closures
- about / Closures
- code
- moduarizing / Modularizing the code
- version controlling / Version controlling the code
- documenting / Documenting the code
- code analysis
- about / Code analysis – How well are we doing?
- IDE used / Code analysis using IDE
- code comments / Documenting the code
- code inspection feature / Attack of the Orcs v2.0.0
- collections module
- deque class / The deque class
- defaultdict class / The defaultdict class
- concurrency patterns
- about / Concurrency patterns
- reference / Concurrency patterns
- coverage package / Is your code covered?
- coverage report command / Is your code covered?
- cProfile module
- about / The cProfile module
- creational patterns
- about / Creational patterns
- CUDA
- about / GPU accelerated computing
- reference / GPU accelerated computing
- custom exceptions
- defining / Defining custom exceptions
D
- decorators
- about / Controlling test execution
- design patterns
- about / Introduction to design patterns
- behavioral patterns / Behavioral patterns
- creational patterns / Creational patterns
- structural patterns / Structural patterns
- concurrency patterns / Concurrency patterns
- design patterns, miscellaneous features
- about / Miscellaneous features
- class method / Class method
- abstract method / Abstract method
- __getattr__ method / The __getattr__ method
- dictionary comprehension / Dictionary comprehension
- distance square
- computing, with einsum / Computing distance square with einsum
- distributed memory parallelization
- distribution
- installing / Installing your own distribution
- distribution, deploying
- about / Uploading the distribution
- account, creating on PyPI test website / Step 1 – Creating an account on PyPI test website
- .pypirc file, creating / Step 2 – Creating a .pypirc file
- project, registering / Step 3 – Register your project
- package, uploading / Step 4 – Uploading the package
- distribution, preparing
- about / Prepare the distribution
- package directory, setting up / Step 1 – Setting up the package directory
- setup.py file, writing / Step 2 – Writing the setup.py file
- README file, updating / Step 3 – Updating the README and LICENSE.txt files
- LICENSE.txt file, updating / Step 3 – Updating the README and LICENSE.txt files
- MANIFEST.in file, updating / Step 4 – Updating the MANIFEST.in file
- deployment ready distribution, building / Step 5 – Build a deployment-ready distribution
- distribution level documentation / Documenting the code
- djangopypi package
- reference / Step 4 – Installing the private distribution
- docstring
- about / Docstrings
- docstring stubs
- creating, automatically / Automatically creating docstring stubs
- Doctest
- documentation, generating within Sphinx
- about / Generating documentation with Sphinx
- Sphinx, installing with piip / Step 1 – Installing Sphinx using pip
- cd, to source directory / Step 2 – cd to the source directory
- sphinx-quickstart, running / Step 3 – Running sphinx-quickstart
- conf.py, updating / Step 4 – Updating conf.py
- sphinx-apidoc, running / Step 5 – Running sphinx-apidoc
- documentation, building / Step 6 – Building the documentation
- documentation, levels
- distribution level documentation / Documenting the code
- API level documentation / Documenting the code
- code comments / Documenting the code
- docutils
- reference / Introduction to reStructuredText
- Dogtail
- reference / Automated GUI testing
- dot notation / Skipping the dots
- dot product
- reference / numpy.einsum
- duck typing
- about / Duck typing
- Dwarf / Meet the characters
E
- Easier to Ask for Forgiveness than Permission (EAFP) principle / Fixing the bugs…
- Easier to ask for forgiveness than permission (EAFP) principle / 'try' it out in a loop
- Einstein notation
- about / numpy.einsum
- reference / numpy.einsum
- einsum
- distance square, computing with / Computing distance square with einsum
- reference / Computing distance square with einsum
- Elf
- Elf Rider / Meet the characters
- else block, of try except / The else block of try…except
- Enthought Canopy Express
- reference / Option 2 – bundled distribution
- error traceback
- about / Debugging the problem
- event
- about / Event
- event-driven programming
- about / Event-driven programming
- event descriptors / Event descriptors
- event handling
- about / Event handling
- event handling, in Tkinter
- about / Event handling in Tkinter
- command callback (Button widget) / Command callback (Button widget)
- bind() method / The bind() method
- bind_class() method / The bind_class() method
- bind_all() method / The bind_all() method
- event loop
- about / Event loop
- event object attributes
- about / Event object attributes
- widget / Event object attributes
- x, y / Event object attributes
- x_root, y_root / Event object attributes
- width, height / Event object attributes
- events, in Tkinter
- about / Events in Tkinter
- event types / Event types
- Button (or ButtonPress) / Event types
- ButtonRelease / Event types
- Enter / Event types
- Leave / Event types
- KeyPress / Event types
- KeyRelease / Event types
- FocusIn / Event types
- FocusOut / Event types
- event descriptors / Event descriptors
- event object attributes / Event object attributes
- event specifiers
- <Button-1> / Event descriptors
- <Button-2> / Event descriptors
- <Button-3> / Event descriptors
- <KeyPress-B> / Event descriptors
- <Return> / Event descriptors
- <Configure> / Event descriptors
- <Shift-Button-1> / Event descriptors
- exception handling
- about / Exception handling
- exceptions
- about / Exceptions, Most common exceptions
- raising / Raising and re-raising an exception
- re-raising / Raising and re-raising an exception
- else block, of try except / The else block of try…except
- finally clause / finally...clean it up!
- extracting / Extracting
F
- Fairy / Meet the characters
- features, reStructuredText (RST)
- section headings / Section headings
- paragraphs / Paragraphs
- text styles / Text styles
- code snippets / Code snippets
- mathematical equations / Mathematical equations
- bullets / Bullets and numbering
- numbering / Bullets and numbering
- docstrings / Dosctrings using RST
- docstrings formatting styles / Docstring formatting styles
- finally clause / finally...clean it up!
- first-class citizens
- about / First-class functions
- first-class functions
- about / First-class functions
- function extraction / Extracting
G
- Gang of Four (GoF)
- about / Introduction to design patterns
- generator expression / The memory_profiler package
- geometry management
- about / Geometry management
- grid geometry manager / Grid geometry manager
- pack geometry manager / Pack geometry manager
- place geometry manager / Place geometry manager
- Git
- about / Git resources
- reference / Git resources
- installing / Installing Git
- download link / Installing Git
- reference, for documentation / Pushing the changes to the central repository
- GUI clients, using for / Using GUI clients for Git
- Git, commands
- add / Basic Git terminology
- commit / Basic Git terminology
- clone / Basic Git terminology
- push / Basic Git terminology
- pull / Basic Git terminology
- Github Desktop
- reference / Using GUI clients for Git
- gitk
- reference / Using GUI clients for Git
- Git repository
- creating / Creating and using a Git repository
- using / Creating and using a Git repository
- cloning / Clone the repository
- code, copying to cloned repository / Copying the code to the cloned repository
- code, staging / Staging the code and committing
- changes, pushing to central repository / Pushing the changes to the central repository
- Global Interpreter Lock (GIL)
- about / Global interpreter lock
- Gnu utilities for win32
- reference / Automatically creating docstring stubs
- Gold Hunt application
- about / Scenario – The Gold Hunt, Revisiting the Gold Hunt scenario
- high-level algorithm / High-level algorithm
- initial code, reviewing / Reviewing the initial code
- code, running / Running the code
- problem / The problem
- bottlenecks, identifying / Identifying the bottlenecks
- problem size, selecting / Selecting a problem size
- initial code, profiling / Profiling the initial code
- optimizing / Optimizing Gold Hunt – Part one
- square root computation / Tweaking the algorithm – The square root
- performance improvement goodies / Performance improvement goodies
- Gold Hunt optimization
- Gold Hunt program, parallelizing
- about / Parallelizing the Gold Hunt program
- gold field / Revisiting the gold field
- Google Python Style Guide
- reference / Docstring formatting styles
- GPU accelerated computing
- about / GPU accelerated computing
- Graphical User Interface (GUI) / Overview of GUI frameworks
- graphical user interface (GUI) / Using GUI clients for Git
- Graphics Processing Unit (GPU) / Further reading
- grid geometry manager / Grid geometry manager
- GUI applications
- testing / Testing GUI applications
- testing considerations / Testing considerations
- GUI clients
- using, for Git / Using GUI clients for Git
- GUI elements
- reference / GUI Widgets in Tkinter
- GUI frameworks
- GUI programming, with Tkinter
- about / GUI programming with Tkinter
- mainloop() / The mainloop() in Tkinter
- simple GUI application / Simple GUI application – Take 1, Simple GUI application – Take 2
- GUI programming design considerations
- about / GUI programming design considerations
- user requisites / Understanding user requirements
- user story, developing / Developing a user story
- accessibility / Simplicity and accessibility
- simplicity / Simplicity and accessibility
- consistency / Consistency
- predictability / Predictability and familiarity
- familiarity / Predictability and familiarity
- miscellaneous design considerations / Miscellaneous design considerations
- GUI widgets, in Tkinter
- about / GUI Widgets in Tkinter
I
- IDE
- selecting / Choosing an IDE
- identity
- configuring / Configuring your identity
- IDLE
- about / Choosing an IDE
- imaginary characters
- Sir Foo / Meet the characters
- Orc Rider / Meet the characters
- Elf Rider / Meet the characters
- Fairy / Meet the characters
- Dwarf / Meet the characters
- import errors
- resolving / Resolving import errors, if any
- incremental release, making
- about / Making an incremental release
- new version, packaging / Packaging and uploading the new version
- new version, uploading / Packaging and uploading the new version
- installed version, upgrading / Upgrading the installed version
- indexing
- about / Array slicing and indexing, Indexing
- reference / Indexing
- inheritance principle / Painting the big picture
- injured unit selection / First unit test – Injured unit selection
- install location, Python
- about / Python install location
- on Unix-like operating systems / Unix-like operating systems
- on Windows OS / Windows OS
- integrated development environments (IDEs) / Code analysis using IDE
- interface, in Java language
- reference / Abstract factory pattern
- IPython
- installing / Installing IPython
- IPython interactive shell
- about / The cProfile module
- reference / The cProfile module
- itertools module
- about / The itertools module
- reference / The itertools module
- itertools.chain iterator / The itertools.chain iterator
J
- JIT compilers
- about / JIT compilers
- Jupyter Notebook
- about / Installing IPython
- reference / Installing IPython
- Just In Time (JIT) compiler
K
- Kivy
- about / Kivy
L
- line_profiler package
- about / The line_profiler package
- list comprehension
- about / The memory_profiler package
- list slicing operation
- reference / Array slicing and indexing
- local scope
- using / Using local scope
- lowerCamelCase / Python coding standards
M
- MagicMock class / Using Mock objects in a unit test
- Makefile
- using / Using Makefile
- matplotlib
- reference / Reviewing the initial code
- mebibyte (MiB) / The memory_profiler package
- memory profiling
- memory_profiler package
- about / The memory_profiler package
- reference / The memory_profiler package
- message passing
- about / Distributed memory parallelization
- reference / Distributed memory parallelization
- metaclass / Abstract base classes in Python
- MIT License
- mock library
- used, for unit testing / Unit tests using mock library
- about / Quick introduction to mock
- reference / Quick introduction to mock
- working / Let's mock!
- Mock objects
- using, in unit test / Using Mock objects in a unit test
- Model to Controller communication, Attack of the Orcs v10.1.0 game
- method assignment, using / Using method assignment
- publish-subscribe pattern, using / Using a publish-subscribe pattern
- module
- about / Modularizing the code
- moving
- about / Moving
- pushing down feature request / Pushing down
- pulling up feature request / Pulling up
- multiprocessing module
- about / The multiprocessing module
- reference / The multiprocessing module
- Pool class / The Pool class
- MVC architecture
- about / MVC architecture
- model component / Model
- view component / View
- controller / Controller
- advantages / Advantages of MVC
N
- namespaces / Using local scope
- nepolean
- about / Docstring formatting styles
- reference / Docstring formatting styles
- new class
- creating, for unit testing / Creating a new class for unit testing
- Nose
- Numba
- about / JIT compilers
- reference / JIT compilers
- NumPy
- about / Introduction to NumPy
- installing / Installing NumPy
- reference / Where to get more information on NumPy?
- numpydoc
- NumPy documentation
- reference / Introduction to NumPy
- NumPy package
- about / The third performance chapter
O
- object-relational mapper (ORM) / The Model class
- object aggregation / Understanding the pseudo UML diagram
- object composition / Understanding the pseudo UML diagram
- official Python distribution
- reference / Option 2 – bundled distribution
- online RST editors
- reference / Section headings
- Open Computing Language (OpenCL)
- reference / GPU accelerated computing
- about / GPU accelerated computing
- operands
- about / numpy.einsum
- Orc Rider / Meet the characters
P
- package
- creating / Creating a package
- importing from / Importing from the package
- releasing, on PyPI / Releasing the package on PyPI
- pack geometry manager / Pack geometry manager
- pandas library
- reference / Where to get more information on NumPy?
- parallelization
- about / The third performance chapter, Introduction to parallelization
- shared memory parallelization / Shared memory parallelization
- distributed memory parallelization / Distributed memory parallelization
- patch
- patch command
- reference / Automatically creating docstring stubs
- patches
- working with / Working with patches
- using, in unit test / Using patch in a unit test
- patterns
- classifying / Classification of patterns
- pep8
- about / PEP8 and AutoPEP8
- reference / PEP8 and AutoPEP8
- PEP 8 coding style guide
- about / Python coding standards
- reference / Python coding standards
- PEP 236 convention
- reference / Pylint in action
- PEP 257 convention
- reference / Docstrings
- PEP 287
- reference / Dosctrings using RST
- PEP 289
- reference / Generator expressions
- PEP 440 specification
- reference / Semantic versioning scheme
- performance improvement goodies, Gold Hunt application
- about / Performance improvement goodies
- list comprehension / List comprehension
- execution time, recording / Recording execution time
- dictionary comprehension / Dictionary comprehension
- conditional block and for loop, swapping / Swapping conditional block and for loops
- try except clause / 'try' it out in a loop
- right data structures, selecting / Choosing the right data structures
- collections module / The collections module
- generator / Generators and generator expressions
- generator expressions / Generators and generator expressions, Generator expressions
- memory efficiency, comparing / Comparing the memory efficiency
- itertools module / The itertools module
- pip
- installing / Installing pip
- place geometry manager / Place geometry manager
- private PyPI repository, using
- about / Using a private PyPI repository
- pypiserver, installing / Step 1 – Installing pypiserver
- new source distribution, building / Step 2 – Building a new source distribution
- local server, starting / Step 3 – Starting a local server
- private distribution, installing / Step 4 – Installing the private distribution
- pseudo UML diagram / Understanding the pseudo UML diagram
- pstats.Stats class
- reference / The pstats module
- pstats module
- about / The pstats module
- PyCharm / Attack of the Orcs v2.0.0
- PyCUDA
- reference / GPU accelerated computing
- about / GPU accelerated computing
- PyDispatcher
- reference / PyPubSub package
- Pygments
- about / Code snippets
- reference / Step 1 – Installing Sphinx using pip
- Pylint
- about / Pylint
- reference / Pylint
- working / Pylint in action
- pyment
- about / Automatically creating docstring stubs
- reference / Automatically creating docstring stubs
- PyOpenCL
- about / GPU accelerated computing
- reference / GPU accelerated computing
- PyPI
- about / Installing pip
- reference / Releasing the package on PyPI
- package, releasing on / Releasing the package on PyPI
- pypiserver package
- PyPI testing site
- PyPubSub package
- about / PyPubSub package
- reference / PyPubSub package
- PyPy
- about / This is how the chapter is organized, JIT compilers
- reference / JIT compilers
- PyQt
- pyshop package
- reference / Step 4 – Installing the private distribution
- PySide
- Pytest
- Python
- reference / Option 1 – official distribution
- install location / Python install location
- refactoring tools / Refactoring tools for Python
- Python(x, y)
- reference / Option 2 – bundled distribution
- python-patch
- reference / Automatically creating docstring stubs
- Python coding standards
- about / Python coding standards
- guidelines / Python coding standards
- Python decorator / Abstract base classes in Python
- Python Enhancement Proposals (PEPs)
- about / Documenting the code
- reference / Documenting the code
- Python IDE
- features / Choosing an IDE
- PyCharm Community Edition / Choosing an IDE
- Wing IDE 101 / Choosing an IDE
- Spyder / Choosing an IDE
- Eclipse PyDev / Choosing an IDE
- Sublime Text 2, or Sublime Text 3 (beta) / Choosing an IDE
- Python Imaging Library (PIL) / The __init__ method
- Python installation
- about / Installing Python
- official distribution / Option 1 – official distribution
- bundled distribution / Option 2 – bundled distribution
- verifying / Verifying Python installation
- Python language
- and design patterns / Python language and design patterns
Q
- Qt
- reference / PyQt
- quicksort algorithm
- about / O(n log n) – Log linear
R
- race condition
- about / Shared memory parallelization
- raise keyword / Raising and re-raising an exception
- recursion
- about / The cProfile module
- Red Hat Enterprise Linux (RHEL)
- about / Kivy
- refactoring
- about / Revisiting the previous version, Refactoring preamble, Refactoring
- for testability / Take a detour – Refactor for testability, Refactoring for testability
- need for / Why refactor?
- class, moving / Moving
- refactoring tools, Python
- about / Refactoring tools for Python
- Python IDE / Refactoring tools for Python
- Rope / Refactoring tools for Python
- bicycle repair man / Refactoring tools for Python
- refatoring
- deadline / When to refactor?
- working / How to refactor?
- renaming task / Renaming
- reStructuredText (RST)
- reference / Step 3 – Updating the README and LICENSE.txt files, Introduction to reStructuredText
- about / Introduction to reStructuredText
- features / Section headings
- Rope
- about / Refactoring tools for Python
- reference / Refactoring tools for Python
- runtime performance
S
- SciPy
- about / Where to get more information on NumPy?
- reference / Where to get more information on NumPy?
- Scrum methodology / When to refactor?
- reference / When to refactor?
- shared memory parallelization
- about / Shared memory parallelization
- reference / Shared memory parallelization
- Sikuli (SikuliX)
- reference / Automated GUI testing
- simple factory
- about / Simple factory
- recruit feature / Simple factory scenario – The recruit feature
- problem / Simple factory – The problem
- design, rethinking / Simple factory – Rethinking the design
- traditional approach / Simple factory solution 1 – Traditional approach
- Pythonic approach / Simple factory solution 2 – Pythonic approach
- Sir Foo / Meet the characters
- slicing / Generator expressions or list comprehensions?
- about / Array slicing and indexing, Slicing
- sorted array / O(log n) – logarithmic
- sorting algorithm
- sorting options
- reference / The cProfile module
- Sphinx
- about / Documenting the code
- reference / Dosctrings using RST
- sphinx-build tool
- using / Using sphinx-build
- StoryText
- reference / Automated GUI testing
- strategy pattern
- about / Strategy pattern
- jump feature / Strategy scenario – The jump feature
- problem / Strategy – The problem
- attempted solution / Strategy – Attempted solution
- design, rethinking / Strategy – Rethinking the design
- traditional approach / Strategy solution 1 – Traditional approach
- Pythonic approach / Strategy solution 2 – Pythonic approach
- structural patterns
- about / Structural patterns
T
- test case
- about / Basic terminology
- test execution
- controlling / Controlling test execution
- test fixtures
- about / Basic terminology
- testing considerations, GUI applications
- unit testing, and MVC / Unit testing and MVC
- manual testing / Manual testing
- automated GUI testing / Automated GUI testing
- test modules
- creating / Creating individual test modules
- test runner
- about / Basic terminology
- tests
- creating, with unittest.TestCase / Creating tests with unittest.TestCase
- test server, PyPI
- reference / Releasing the package on PyPI
- test suite
- about / Basic terminology
- timeit
- reference / Measuring the runtime of small code snippets
- timeit documentation
- reference / Performance improvement goodies
- Tkinter
- about / Tkinter
- reference / Tkinter
- documentation links / Tkinter documentation links, GUI Widgets in Tkinter
- widget classes / GUI Widgets in Tkinter
- tools, for GUI test automation
- reference / Automated GUI testing
- Sikuli (SikuliX) / Automated GUI testing
- StoryText / Automated GUI testing
- Dogtail / Automated GUI testing
- TortoiseMerge
- reference / Automatically creating docstring stubs
- twine
- reference / Step 4 – Uploading the package
U
- unhandled exceptions
- about / What is an exception?
- Unified Modeling Language (UML) / Painting the big picture
- reference / How to refactor?
- unit test
- running / Running the first unit test, Second unit test – Acquiring the hut, Running only the second test
- setup_game_scenario / Fourth unit test – setup_game_scenario
- unittest.TestCase
- tests, creating with / Creating tests with unittest.TestCase
- unittest.TestSuite
- using / Using unittest.TestSuite
- unit testing
- about / Unit testing, Unit testing revisited
- new class, creating for / Creating a new class for unit testing
- unit testing tools
- about / Other unit testing tools
- Doctest / Doctest
- Nose / Nose
- Pytest / Pytest
- unittest module
- about / Python unittest framework
- unit tests
- batch executing / Batch executing unit tests
- Mock objects, using in / Using Mock objects in a unit test
- patches, using in / Using patch in a unit test
- play method / Third unit test – The play method
- unit tests, writing for application
- about / Writing unit tests for the application
- test package, setting up / Setting up a test package
- UpperCamelCase / Python coding standards
V
- version control system (VCS) / Version controlling the code
- versioning convention selection
- about / Selecting a versioning convention
- serial increments / Serial increments
- date format, using / Using a date format
- semantic versioning scheme / Semantic versioning scheme
- Visual C++ Express
- reference / The line_profiler package
W
- wheel package
- reference / Step 5 – Build a deployment-ready distribution
- widget classes, in Tkinter
- Menu / GUI Widgets in Tkinter
- Frame / GUI Widgets in Tkinter
- Canvas / GUI Widgets in Tkinter
- Label / GUI Widgets in Tkinter
- Button / GUI Widgets in Tkinter
- Radiobutton / GUI Widgets in Tkinter
- Checkbutton / GUI Widgets in Tkinter
- Listbox / GUI Widgets in Tkinter
- Entry / GUI Widgets in Tkinter
- wxPython
- wxWidgets
- about / wxPython
Z
- Zope web framework
- reference / Duck typing