Getting Started¶
System Requirements¶
The development of dripline is being done primarily on OS X (with packages installed via homebrew and python packages through pip) and debian linux (with any system-packages from apt and python pacakges through pip). Much work is also done in Docker containers described below.
We have not attempted to fully track compatible versions of all dependencies, or minimal versions. We do, however, know the following:
dripline-python requires python >= 3.6 because it leverages the f-string feature
when not explicitly pinned in the setup.py file or Dockerfil, the “current” versions are installed from PyPI when developing and testing
tagged container images are believed to work, you should be able to run any of them and use
pip freeze
to check the full set of versions from the time of any available tag.
Installation¶
Dripline-python is developed specifically for container-based workflows, including development and deployment, and that is the only approach we encourage or support. In principle, there is nothing to prevent installing and running directly on your host system, but you will need to be careful about the potential for conflicting dependency versions (that should probably be done in a virtualenvironment, but that’s up to you). If you’re new to containers, consider starting with the getting started docs from Docker Inc.; most contributors develop using the OS-native “desktop application” available there.
Docker containers¶
The easiest way to get started with dripline is simply to use a container image from the dockerhub repository. These are built automatically based on tagged releases, as well as merges into the master or develop branch. Images are automatically built for both x86 and armv7 architectures, and a container manifest allows use of common tag references to resolve to the architectures-specific images.
You may also use the Dockerfile
located in the dripline-python GitHub repository’s root directory to build the image yourself (the full repository is the required build context).
Note that the Dockerfile provides arguments for specifing the base image details, the defaults there will hopefully be kept current, but the automatic build configurations actively pass overrides based on the .travis.yml
file, also in the repo’s root.
Python Libraries¶
If working with containers, the dependencies should all be installed (generally from PyPI), here we discuss briefly those features enabled by each.
Required¶
The following dependencies are required for core functionality and thus non-optional.
PyYAML is used to read yaml formatted configuration files.
asteval is used to process python statements presented as strings (sometimes provided as strings in start-up configurations or as part of calibration definitions).
Color Output¶
Colorlog is completely aesthetic. The logging module is used throughout dripline and this allows for colorized format of log messages.
Helpful Python Packages¶
The following packages are not actually dependencies for any aspect of dripline. They are, however, highly recommended (especially for anyone relatively new to python).
ipython and ipdb are both highly recomended for all non-production workflows. The expanded tab completion, command and output history, and doc access make it a powerful python interpretor for developing or manually interacting with dripline components.