Terminology - cma-open/cmatools GitHub Wiki
Interchangeable terms
Many python terms are often used interchangeably. Additionally for installed python systems the software may fullfill different uses and could be classified under several different terms, e.g. as a stand alone application, a command line tool, and also serve as a library for use by other packages
Many terms are usefully defined here https://packaging.python.org/glossary/
Use within this project
In many cases the terms "library" and "package" are used in a similar way, to refer to a collection of functional code packaged together for use. This project will focus on the use of the delivery of a main package, with component subpackages and modules. The term "library" will be avoided.
-
distribution package
- see https://packaging.python.org/glossary/#term-Distribution-Package
- "A versioned archive file that contains Python packages, modules, and other resource files that are used to distribute a Release.
- The archive file is what an end-user will download from the internet and install."
-
import package
- see https://packaging.python.org/glossary/
- "A Python module which can contain other modules or recursively, other packages"
- "An import package is more commonly referred to with the single word “package” "
-
libary
- Not typically officially used to refer to developer generated python code
- However the "python standard libary" refers to the range of built-in modules (or component packages) that are installed when python is installed
- Additionally several python projects refer to project code as shared libraries, meaning a python package being imported and use in another system
- There is an implication that "library" refers typically to a larger more substantial codebase and wider range of functionality than typically delviered by a scientific project package
- The term library may also refer to a library of many different packages, or subpackages, where it is used interchangeably with the term package
- Some setup tools also use the term
lib
to refer to the top level directory within the source archive within a python package structure
-
module
- A python file containing functionality such as simple procedural script statements or defined functions
- modules can be easily imported into other modules, allowing re-use
-
package
- A python package refers to an organised collection of python modules within a directory.
- These may be organised into subpackages.
- Typically these deliver related functionality and allow an entire package to be imported for use into other modules
-
project
- see https://packaging.python.org/glossary/#term-Project
- "A library, framework, script, plugin, application, or collection of data or other resources, or some combination thereof that is intended to be packaged into a Distribution."
-
release
- see https://packaging.python.org/glossary/#term-Release
- "A snapshot of a Project at a particular point in time, denoted by a version identifier"
-
source archive
- https://packaging.python.org/glossary/
- "An archive containing the raw source code for a Release, prior to creation of a Source Distribution or Built Distribution."