Appendix A — Glossary of Python Development Terms

A.1 A

  • API (Application Programming Interface): A set of definitions and protocols for building and integrating application software.
  • Artifact: Any file or package produced during the software development process, such as documentation or distribution packages.

A.2 C

  • CI/CD (Continuous Integration/Continuous Deployment): Practices where code changes are automatically tested (CI) and deployed to production (CD) when they pass quality checks.
  • CLI (Command Line Interface): A text-based interface for interacting with software using commands.
  • Code Coverage: A measure of how much of your code is executed during testing.
  • Code Linting: The process of analyzing code for potential errors, style issues, and suspicious constructs.

A.3 D

  • Dependency: An external package or module that your project requires to function properly.
  • Docstring: A string literal specified in source code that is used to document a specific segment of code.
  • Dynamic Typing: A programming language feature where variable types are checked during runtime rather than compile time.
    • Cookiecutter: A project templating tool that helps developers create new projects with a predefined structure, configuration files, and boilerplate code. Cookiecutter uses Jinja2 templating to customize files based on user inputs during project generation.

A.4 E

  • Entry Point: A function or method that serves as an access point to an application, module, or library.

A.5 F

  • Fixture: In testing, a piece of code that sets up a system for testing and provides test data.

A.6 G

  • Git: A distributed version control system for tracking changes in source code.
  • GitHub Repository Template: A repository that can be used as a starting point for new projects on GitHub.
  • GitHub/GitLab: Web-based platforms for hosting Git repositories with collaboration features.

A.7 I

  • Integration Testing: Testing how different parts of the system work together.

A.8 L

  • Lock File: A file that records the exact versions of dependencies needed by a project to ensure reproducible installations.

A.9 M

  • Mocking: Simulating the behavior of real objects in controlled ways during testing.
  • Module: A file containing Python code that can be imported and used by other Python files.
  • Monorepo: A software development strategy where many projects are stored in the same repository.

A.10 N

  • Namespace Package: A package split across multiple directories or distribution packages.

A.11 P

  • Package: A directory of Python modules containing an additional __init__.py file.
  • PEP (Python Enhancement Proposal): A design document providing information to the Python community, often proposing new features.
  • PEP 8: The style guide for Python code.
  • PyPI (Python Package Index): The official repository for third-party Python software.

A.12 R

  • Refactoring: Restructuring existing code without changing its external behavior.
  • Repository: A storage location for software packages and version control.
  • Requirements File: A file listing the dependencies required for a Python project.
  • Reproducible Build: A build that can be recreated exactly regardless of when or where it’s built.

A.13 S

  • Semantic Versioning: A versioning scheme in the format MAJOR.MINOR.PATCH, where each number increment indicates the type of change.
  • Static Analysis: Analyzing code without executing it to find potential issues.
  • Static Typing: Specifying variable types at compile time instead of runtime.
  • Stub Files: Files that contain type annotations for modules that don’t have native typing support.

A.14 T

  • Test-Driven Development (TDD): A development process where tests are written before the code.
  • Type Annotation: Syntax for indicating the expected type of variables, function parameters, and return values.
  • Type Hinting: Adding type annotations to Python code to help with static analysis and IDE assistance.

A.15 U

  • Unit Testing: Testing individual components in isolation from the rest of the system.

A.16 V

  • Virtual Environment: An isolated Python environment that allows packages to be installed for use by a particular project, without affecting other projects.

A.17 W

  • Wheel: A built-package format for Python that can be installed more quickly than source distributions.