def get_config_files(self, config): # # Convert to shell paths and return shell paths. # # @fixme should this use a passed in set of defaults and not # not the initial set of values ? # config = path.shell(config) if '*' in config or '?' in config: print(config) configdir = path.dirname(config) configbase = path.basename(config) if len(configbase) == 0: configbase = '*' if not configbase.endswith('.cfg'): configbase = configbase + '.cfg' if len(configdir) == 0: configdir = self.macros.expand(self.defaults['_configdir']) configs = [] for cp in configdir.split(':'): hostconfigdir = path.host(cp) for f in glob.glob(os.path.join(hostconfigdir, configbase)): configs += path.shell(f) else: configs = [config] return configs
def get_config_files(self, config): # # Convert to shell paths and return shell paths. # # @fixme should this use a passed in set of defaults and not # not the initial set of values ? # config = path.shell(config) if '*' in config or '?' in config: print config configdir = path.dirname(config) configbase = path.basename(config) if len(configbase) == 0: configbase = '*' if not configbase.endswith('.cfg'): configbase = configbase + '.cfg' if len(configdir) == 0: configdir = self.macros.expand(self.defaults['_configdir']) configs = [] for cp in configdir.split(':'): hostconfigdir = path.host(cp) for f in glob.glob(os.path.join(hostconfigdir, configbase)): configs += path.shell(f) else: configs = [config] return configs
def _collect(path_, file): confs = [] for root, dirs, files in os.walk(path.host(path_), topdown=True): for f in files: if f == file: confs += [path.shell(path.join(root, f))] return confs
def _collect(path_, file): confs = [] for root, dirs, files in os.walk(path.host(path_), topdown = True): for f in files: if f == file: confs += [path.shell(path.join(root, f))] return confs
_email = '%s <%s>' % (_name, _email) return _email return None def head(self): hash = '' ec, output = self._run(['log', '-n', '1']) if ec == 0: l1 = output.split('\n')[0] if l1.startswith('commit '): hash = l1[len('commit '):] return hash if __name__ == '__main__': import os.path import sys defaults = path.join(path.dirname(path.dirname(path.shell(sys.argv[0]))), 'defaults.mc') opts = options.load(sys.argv, defaults=defaults) g = repo('.', opts) print('g.git_version():', g.git_version()) print('g.valid():', g.valid()) print('g.submodules():', g.submodules()) print('g.status():', g.status()) print('g.status():', g.status(True)) print('g.dirty():', g.dirty()) print('g.remotes():', g.remotes()) print('g.email():', g.email()) print('g.head():', g.head())
def load(): # Default to the native Windows Python. uname = 'win32' if 'PROCESSOR_ARCHITECTURE' in os.environ: if os.environ['PROCESSOR_ARCHITECTURE'] == 'AMD64': hosttype = 'x86_64' machsize = '64' else: hosttype = 'i686' machsize = '32' else: hosttype = 'x86_64' machsize = '32' uname = 'mingw32' machine = 'w%s' % (machsize) # Set the C/C++ compilers we want to use. cc = '%s-%s-%s-gcc' % (hosttype, machine, uname) cxx = '%s-%s-%s-g++' % (hosttype, machine, uname) # See if this is actually MSYS2/Cygwin Python if os.name == 'posix': _uname = os.uname() if _uname[0].startswith('MINGW'): pass elif _uname[0].startswith('CYGWIN'): hosttype = _uname[4] uname = 'cygwin' machine = 'pc' cc = 'gcc' cxx = 'g++' else: raise error.general('invalid POSIX python for Windows') host_triple = '%s-%s-%s' % (hosttype, machine, uname) build_triple = '%s-%s-%s' % (hosttype, machine, uname) if 'NUMBER_OF_PROCESSORS' in os.environ: ncpus = os.environ['NUMBER_OF_PROCESSORS'] else: ncpus = '1' if 'MSYSTEM' in os.environ: os.environ.pop('NUMBER_OF_PROCESSORS') version = uname[2] defines = { '_ncpus': ('none', 'none', ncpus), '_os': ('none', 'none', 'win32'), '_windows_os': ('none', 'none', uname), '_build': ('triplet', 'required', build_triple), '_build_vendor': ('none', 'none', 'microsoft'), '_build_os': ('none', 'none', 'win32'), '_build_os_version': ('none', 'none', version), '_build_cpu': ('none', 'none', hosttype), '_build_alias': ('none', 'none', '%{nil}'), '_build_arch': ('none', 'none', hosttype), '_host': ('triplet', 'required', host_triple), '_host_vendor': ('none', 'none', 'microsoft'), '_host_os': ('none', 'none', 'win32'), '_host_cpu': ('none', 'none', hosttype), '_host_alias': ('none', 'none', '%{nil}'), '_host_arch': ('none', 'none', hosttype), '_usr': ('dir', 'optional', '/opt/local'), '_var': ('dir', 'optional', '/opt/local/var'), '__bash': ('exe', 'required', 'bash'), '__bzip2': ('exe', 'required', 'bzip2'), '__bison': ('exe', 'required', 'bison'), '__cat': ('exe', 'required', 'cat'), '__cc': ('exe', 'required', cc), '__chgrp': ('exe', 'required', 'chgrp'), '__chmod': ('exe', 'required', 'chmod'), '__chown': ('exe', 'required', 'chown'), '__cp': ('exe', 'required', 'cp'), '__cvs': ('exe', 'optional', 'cvs'), '__cxx': ('exe', 'required', cxx), '__flex': ('exe', 'required', 'flex'), '__git': ('exe', 'required', 'git'), '__grep': ('exe', 'required', 'grep'), '__gzip': ('exe', 'required', 'gzip'), '__id': ('exe', 'required', 'id'), '__install': ('exe', 'required', 'install'), '__install_info': ('exe', 'required', 'install-info'), '__ld': ('exe', 'required', 'ld'), '__ldconfig': ('exe', 'none', ''), '__makeinfo': ('exe', 'required', 'makeinfo'), '__mkdir': ('exe', 'required', 'mkdir'), '__mv': ('exe', 'required', 'mv'), '__nm': ('exe', 'required', 'nm'), '__nm': ('exe', 'required', 'nm'), '__objcopy': ('exe', 'required', 'objcopy'), '__objdump': ('exe', 'required', 'objdump'), '__patch': ('exe', 'required', 'patch'), '__patch_bin': ('exe', 'required', 'patch'), '__rm': ('exe', 'required', 'rm'), '__sed': ('exe', 'required', 'sed'), '__sh': ('exe', 'required', 'sh'), '__tar': ('exe', 'required', 'bsdtar'), '__touch': ('exe', 'required', 'touch'), '__unzip': ('exe', 'required', 'unzip'), '__xz': ('exe', 'required', 'xz'), '_buildshell': ('exe', 'required', '%{__sh}'), '___setup_shell': ('exe', 'required', '%{__sh}') } # # Locate a suitable python to use with GDB. Python Windows is more # complicated than most hosts. There are 7 possible pythons on Windows and # we can use only 4 which are split on machine size. The types are: # # 1. Python27 - python.org, cannot use cause built with MSVC. # 2. Python35 - python.org, cannot use cause built with MSVC. # 3. MSYS/Python - MSYS2, cannot use cause it is a MSYS executable. # 4. W64/Python2 - Ok if machsize is 64 # 5. W64/Python3 - gdb-7.9 needs python2. # 6. W64/Python2 - Ok if machsize is 32 # 7. W64/Python3 - gdb-7.9 needs python2. # # Find a suitable python2 and python3. # for p in os.environ['PATH'].split(os.pathsep): sh = os.path.join(p, 'sh.exe') if os.path.exists(sh) and os.path.isfile(sh): break sh = None if sh is None: raise error.general('cannot find a shell (sh.exe) in the PATH') # # Search the MSYS2 install tree for a suitable python. # if sys.platform == 'msys': e = execute.capture_execution() exit_code, proc, output = e.shell("sh -c mount") if exit_code != 0: raise error.general('cannot get MSYS mount points') install_point = None for l in output.split('\n'): if ' on / ' in l: install_point = l.split()[0] break if install_point is None: raise error.general('cannot locate MSYS root mount point') if install_point[1] != ':': raise error.general('invalid MSYS root mount point: %s' % install_point) install_point = path.shell(install_point) mingw = path.join(install_point, 'mingw%s' % (machsize)) if not path.exists(mingw) or not path.isdir(mingw): raise error.general('cannot find MinGW install: %s' % (path.host(mingw))) for version in ['2', '3']: python = 'python%s' % (version) exe = path.join(mingw, 'bin', '%s.exe' % (python)) if not path.exists(exe) or not path.isdir(exe): defines['gdb_python%s' % (version)] = exe header = path.join(mingw, python) return defines
#This may or may not be where the actual main program ends up. For now it just imports everything so i can test. import scipy as sp import display import stl_importer import path import surfaces #import mesh w1 = surfaces.wave(5,30,0,0) test = stl_importer.stl_import('model.stl') #test = test.tesselate(2) #test = w1.meshShift(test,-1) layers = test.chop(3) layers = layers[:-1] for layer in layers: path.straighten(layer) path.order(layer) path.shell(3,0.75,layer) path.wrapLayer(layer,w1,4) chain = [] for layer in layers: for shellGroup in layer.shells: for shell in shellGroup: chain.extend(shell) display.edgePlot(chain)
#This may or may not be where the actual main program ends up. For now it just imports everything so i can test. import scipy as sp import display import stl_importer import path import surfaces #import mesh w1 = surfaces.wave(5, 30, 0, 0) test = stl_importer.stl_import('model.stl') #test = test.tesselate(2) #test = w1.meshShift(test,-1) layers = test.chop(3) layers = layers[:-1] for layer in layers: path.straighten(layer) path.order(layer) path.shell(3, 0.75, layer) path.wrapLayer(layer, w1, 4) chain = [] for layer in layers: for shellGroup in layer.shells: for shell in shellGroup: chain.extend(shell) display.edgePlot(chain)
if _email is not None: if _name is not None: _email = '%s <%s>' % (_name, _email) return _email return None def head(self): hash = '' ec, output = self._run(['log', '-n', '1']) if ec == 0: l1 = output.split('\n')[0] if l1.startswith('commit '): hash = l1[len('commit '):] return hash if __name__ == '__main__': import os.path import sys defaults = path.join(path.dirname(path.dirname(path.shell(sys.argv[0]))), 'defaults.mc') opts = options.load(sys.argv, defaults = defaults) g = repo('.', opts) print('g.git_version():', g.git_version()) print('g.valid():', g.valid()) print('g.submodules():', g.submodules()) print('g.status():', g.status()) print('g.status():', g.status(True)) print('g.dirty():', g.dirty()) print('g.remotes():', g.remotes()) print('g.email():', g.email()) print('g.head():', g.head())