Skip to content

usnistgov/CASE-Implementation-GNU-Time

Repository files navigation

CASE Implementation: GNU Time

This implementation maps the logged output of GNU Time into the UCO version used by CASE.

Disclaimer

Participation by NIST in the creation of the documentation of mentioned software is not intended to imply a recommendation or endorsement by the National Institute of Standards and Technology, nor is it intended to imply that any specific software is necessarily the best available for the purpose.

Usage

To install this software, clone this repository, and run python3 setup.py install from within this directory. (You might want to do this in a virtual environment.)

This provides a standalone command:

/usr/bin/time -v -o echo.txt.time.log echo test > echo.txt
case_gnu_time echo.txt.time.log process.json

The tests build several examples of process.json. The tests directory demonstrates the expected usage pattern of GNU Time that this project analyzes.

The installation also provides a package to import:

import case_gnu_time
help(case_gnu_time.build_process_object)

Development status

This repository follows CASE community guidance on describing development status, by adherence to noted support requirements.

The status of this repository is:

4 - Beta

Versioning

This project follows SEMVER 2.0.0 where versions are declared.

Ontology versions supported

This repository supports the CASE and UCO ontology versions that are distributed with the CASE-Utilities-Python repository, at its submodule-tracked state here. Currently, those ontology versions are:

  • CASE 1.2.0
  • UCO 1.2.0

Repository locations

This repository is available at the following locations:

Releases and issue tracking will be handled at the casework location.

Make targets

Some make targets are defined for this repository:

  • all - No effect.
  • check - Run unit tests. NOTE: The tests entail downloading some software to assist with formatting and conversion, from PyPI and from a third party. make download retrieves these files.
  • clean - Remove test build files, but not downloaded files or the tests/venv virtual environment. Will not remove downloaded submodules.
  • download - Download files sufficiently to run the unit tests offline. This will not include the ontology repositories tracked as submodules. Note if you do need to work offline, be aware touching the setup.py file in the root, or tests/requirements.txt, will trigger a virtual environment rebuild.

Operating system environments

This repository is tested in several POSIX environments. See the dependencies/ directory for package-installation and -configuration scripts for some of the test environments.

Note that even though FreeBSD is listed among the test environments, GNU Time is not available as a package. Without locally compiling and installing GNU Time, some base test data cannot be re-built in FreeBSD. This is currently not attempted, and is one reason some base test files are hard-coded in the repository. (Another reason is saving on unimportant differences in test re-runs.)

Also note that running tests in FreeBSD requires running gmake, not make.

Disambiguation

Several independent implementations of some time command exist.

Note that this project does not map the output of BSD Time. Also note that some environments, such as macOS at and before 10.15.7, package a BSD Time version that predates a flag for an independently specified output file.

Note also that the Bash builtin time command is not supported.