Source code for pyNastran.bdf.write_path

"""
Defines following useful methods:
  - write_include
"""
from __future__ import print_function
import os


[docs]def write_include(filename, is_windows=True): """ Writes a bdf INCLUDE file line given an imported filename. :param filename: the filename to write :param is_windows: Windows has a special format for writing INCLUDE files so the format for a BDF that will run on Linux and Windows is different. We could check the platform, but since you might need to change platforms, it's an option (default=True) For a model that will run on Linux: ..code-blocK:: python fname = r'/opt/NASA/test1/test2/test3/test4/formats/pynastran_v0.6/pyNastran/bdf/model.inc' write_include(fname, is_windows=False) We want: ..code-blocK:: python INCLUDE /opt/NASA/test1/test2/test3/test4/formats/pynastran_v0.6/ pyNastran/bdf/model.inc """ msg = 'INCLUDE ' # len=8 #nmax = 72 - 8 # 64 if is_windows: marker = '\\' else: marker = '/' sline = _split_path(filename) print("sline = %s" % sline) if len(filename) > 52: # 62 pth = '' for p in sline: if p == '/': pth += '%s' % marker else: pth += '%s%s' % (p, marker) if len(pth) > 52: pth += '\n ' msg += pth pth = '' pth = pth.rstrip(' /\\\n') else: pth = marker.join(sline) return msg + pth
[docs]def _split_path(abspath): """ Takes a path and splits it into the various components. This is a helper method for write_include """ path = abspath basepaths = [] npaths_old = -1 npaths_new = 0 dpaths = 1 while dpaths: npaths_old = len(basepaths) basepath = os.path.basename(path) if basepath: basepaths.append(basepath) path = os.path.dirname(path) npaths_new = len(basepaths) dpaths = npaths_new - npaths_old if path: basepaths.append(path) basepaths.reverse() return basepaths
[docs]def main(): include_name = r'C:\NASA\formats\pynastran_v0.6\pyNastran\bdf\writePath.py' print('%s' % write_include(include_name, is_windows=True)) include_name = r'/opt/NASA/formats/pynastran_v0.6/pyNastran/bdf/writePath.py' print('%s' % write_include(include_name, is_windows=False)) include_name = r'/opt/NASA/test1/test2/test3/test4/formats/pynastran_v0.6/pyNastran/bdf/writePath.py' print('%s' % write_include(include_name, is_windows=False)) include_name = r'/opt/NASA/test1/test2/test3/test4/formats/pynastran_v0.6/pyNastran/bdf/writePath.py' print('%s' % write_include(include_name, is_windows=True))
if __name__ == '__main__': ## pragma: no cover main()