code: def read_requirements(
      path, strict_bounds, conda_format=False, filter_names=None
  ):
      """
      Read a requirements.txt file, expressed as a path relative to Catalyst root.
  
      Returns requirements with the pinned versions as lower bounds
      if `strict_bounds` is falsey.
      """
      real_path = join(dirname(abspath(__file__)), path)
      with open(real_path) as f:
          reqs = _filter_requirements(
              f.readlines(),
              filter_names=filter_names,
              filter_sys_version=not conda_format,
          )
  
          if not strict_bounds:
              reqs = map(_with_bounds, reqs)
  
          if conda_format:
              reqs = map(_conda_format, reqs)
  
          return list(reqs)
  
imports: from __future__ import print_function
  import os
  import re
  import sys
  from operator import lt, gt, eq, le, ge
  from os.path import abspath, dirname, join
  from distutils.version import StrictVersion
  from setuptools import Extension, find_packages, setup
  import versioneer
label_desc: Use image node_id 5 for calling a global function with example usage: read_requirements(path, strict_bounds, conda_format, filter_names) and returns: list