def dipy_version(): import dipy dipy_ver = dipy.__version__ from distutils.version import StrictVersion dipy_ver = StrictVersion(dipy_ver.split('.dev')[0]) return dipy_ver
def test_01_upgrade_jail(invoke_cli, jail, skip_test, release, freebsd_download_server, dhcp, jail_ip, resource_selector): # This scenario should work in most cases # We can take the value of release specified, go down one version # Create a jail for this version and then upgrade to release # If it passes as desired, we can mark this as resolved req = requests.get(freebsd_download_server) assert req.status_code == 200 releases = [ StrictVersion(r) for r in re.findall(r'href="(\d.*)-RELEASE/"', req.content.decode('utf-8')) ] releases.sort() release = StrictVersion(release.split('-')[0]) skip_test(release not in releases, f'{releases} does contain {release}') skip_test(releases.index(release) == 0, f'Cannot execute upgrade test') jails = resource_selector.jails_with_prop('ip4_addr', jail_ip) if not jails: jails = resource_selector.jails_with_prop('dhcp', 'on') skip_test(not jails) invoke_cli(['upgrade', jail.name, '-r', release])
def test_01_upgrade_jail( invoke_cli, jail, skip_test, release, freebsd_download_server, dhcp, jail_ip, resource_selector ): # This scenario should work in most cases # We can take the value of release specified, go down one version # Create a jail for this version and then upgrade to release # If it passes as desired, we can mark this as resolved req = requests.get(freebsd_download_server) assert req.status_code == 200 releases = [ StrictVersion(r) for r in re.findall( r'href="(\d.*)-RELEASE/"', req.content.decode('utf-8') ) ] releases.sort() release = StrictVersion(release.split('-')[0]) skip_test(release not in releases, f'{releases} does contain {release}') skip_test(releases.index(release) == 0, f'Cannot execute upgrade test') jails = resource_selector.jails_with_prop('ip4_addr', jail_ip) if not jails: jails = resource_selector.jails_with_prop('dhcp', 'on') skip_test(not jails) invoke_cli( ['upgrade', jail.name, '-r', release] )
class RenderChanPencil2dModule(RenderChanModule): def __init__(self): RenderChanModule.__init__(self) if os.name == 'nt': self.conf['binary'] = os.path.join( os.path.dirname(__file__), "..\\..\\..\\packages\\pencil2d\\pencil2d.exe") else: self.conf['binary'] = "pencil2d" self.conf["packetSize"] = 0 # Extra params self.extraParams["transparency"] = "0" self.extraParams["width"] = "-1" self.extraParams["height"] = "-1" self.extraParams["startFrame"] = "1" self.extraParams["endFrame"] = "last" self.version = StrictVersion('0.5.4') #default value def checkRequirements(self): RenderChanModule.checkRequirements(self) if self.active: # The CLI features depend on the version with tempfile.TemporaryDirectory() as tmpPath: # The exporting of a fake file is a workaround for older versions which just start the program when passed only -v proc = subprocess.Popen([ self.conf['binary'], "-v", "--export-sequence", os.path.join(tmpPath, "test") ], stdout=subprocess.PIPE) try: outs, errs = proc.communicate(timeout=5) except TimeoutExpired: proc.kill() outs, errs = proc.communicate() rc = proc.poll() if rc == 0: try: for line in outs.decode("utf-8"): if line.startswith("Pencil2D "): # Get the version from stdout. An example of the output: "Pencil2D 0.6.0\n" self.version = line.rstrip().split(" ")[-1] self.version = ".".join( self.version.split(".")[0:3]) self.version = StrictVersion(self.version) except: self.active = False else: self.active = False if self.active == False: print( "WARNING: Failed to initialize Pencil2D module. The possible reasons for that could be: missing X connection, or the version of Pencil2D on your system is unsupported (too old?). In latter case please consider to get latest version at https://www.pencil2d.org/." ) return self.active def analyze(self, filename): info = {"dependencies": []} if filename.endswith(".pcl"): with open(filename, 'r') as f: tree = ElementTree.parse(f) root = tree.getroot() info["dependencies"].extend( (os.path.join(filename + ".data", element.get("src")) for element in root.findall(".//*[@src]"))) else: # We don't actually have to do anything here because there are no dependencies and the default values # automatically update for changes in the internal width, height, camera etc. # This is how we would open it if we needed to """with ZipFile(filename) as zipdir: with zipdir.open('main.xml') as mainfile: tree = ElementTree.parse(mainfile) root = tree.getroot()""" return info def getInputFormats(self): if self.version >= StrictVersion('0.6.0'): return ["pcl", "pclx"] else: return ["pcl"] def getOutputFormats(self): if self.version > StrictVersion('0.6.0'): return [ "png", "jpg", "jpeg", "tif", "tiff", "bmp", "mp4", "avi", "gif", "webm" ] elif self.version == StrictVersion('0.6.0'): return ["png", "jpg", "jpeg", "tif", "tiff", "bmp"] else: return ["png"] def render(self, filename, outputPath, startFrame, endFrame, format, updateCompletion, extraParams={}): comp = 0.0 updateCompletion(comp) output = os.path.join(outputPath, "file") if not os.path.exists(outputPath): os.mkdir(outputPath) if self.version > StrictVersion('0.6.0'): commandline = [ self.conf['binary'], filename, "-o", output, "--width", extraParams['width'], "--height", extraParams['height'], "--start", str(startFrame), "--end", str(endFrame) ] if is_true_string(extraParams['transparency']): commandline.append("--transparency") if ('camera' in extraParams) and (extraParams['camera']): commandline.extend(["--camera", extraParams['camera']]) elif self.version == StrictVersion('0.6.0'): commandline = [ self.conf['binary'], filename, "--export-sequence", output, "--width", extraParams['width'], "--height", extraParams['height'] ] if is_true_string(extraParams['transparency']): commandline.append("--transparency") else: commandline = [ self.conf['binary'], filename, "--export-sequence", output ] print(commandline) subprocess.check_call(commandline) updateCompletion(1.0)
if args.debug: out = None else: out = PIPE with open("setup.py", "r+") as f: setup_py = f.read() matches = version_regex.search(setup_py) version = StrictVersion(matches.group(1)) version = StrictVersion( f"{version.version[0]}.{version.version[1]}.{version.version[2]+1}") if args.version: version = StrictVersion(args.version) version = str(version) if len(version.split(".")) < 3: version += ".0" setup_py = version_regex.sub(version, setup_py) f.seek(0) f.write(setup_py) f.truncate() if os.path.exists("dist"): shutil.rmtree("dist") result = run( f"{python_exe} setup.py sdist bdist_wheel", stdout=out, universal_newlines=True, shell=True, ) if result.returncode != 0:
class RenderChanPencil2dModule(RenderChanModule): def __init__(self): RenderChanModule.__init__(self) if os.name == 'nt': self.conf['binary']=os.path.join(os.path.dirname(__file__),"..\\..\\..\\packages\\pencil2d\\pencil2d.exe") else: self.conf['binary']="pencil2d" self.conf["packetSize"]=0 # Extra params self.extraParams["transparency"]="0" self.extraParams["width"]="-1" self.extraParams["height"]="-1" self.extraParams["startFrame"]="1" self.extraParams["endFrame"]="last" self.version=StrictVersion('0.5.4') #default value def checkRequirements(self): RenderChanModule.checkRequirements(self) if self.active: # The CLI features depend on the version with tempfile.TemporaryDirectory() as tmpPath: # The exporting of a fake file is a workaround for older versions which just start the program when passed only -v proc = subprocess.Popen([self.conf['binary'], "-v", "--export-sequence", os.path.join(tmpPath,"test")], stdout=subprocess.PIPE) try: outs, errs = proc.communicate(timeout=5) except TimeoutExpired: proc.kill() outs, errs = proc.communicate() rc = proc.poll() if rc == 0: try: # Get the version from stdout. An example of the output: "Pencil2D 0.6.0\n" self.version = outs.rstrip().decode("utf-8").split(" ")[-1] self.version = ".".join(self.version.split(".")[0:3]) self.version = StrictVersion(self.version) except: self.active = False else: self.active = False if self.active == False: print("WARNING: Failed to initialize Pencil2D module. The possible reasons for that could be: missing X connection, or the version of Pencil2D on your system is unsupported (too old?). In latter case please consider to get latest version at https://www.pencil2d.org/.") return self.active def analyze(self, filename): info={ "dependencies":[] } if filename.endswith(".pcl"): with open(filename, 'r') as f: tree = ElementTree.parse(f) root = tree.getroot() info["dependencies"].extend((os.path.join(filename + ".data", element.get("src")) for element in root.findall(".//*[@src]"))) else: # We don't actually have to do anything here because there are no dependencies and the default values # automatically update for changes in the internal width, height, camera etc. # This is how we would open it if we needed to """with ZipFile(filename) as zipdir: with zipdir.open('main.xml') as mainfile: tree = ElementTree.parse(mainfile) root = tree.getroot()""" return info def getInputFormats(self): if self.version >= StrictVersion('0.6.0'): return ["pcl", "pclx"] else: return ["pcl"] def getOutputFormats(self): if self.version > StrictVersion('0.6.0'): return ["png", "jpg", "jpeg", "tif", "tiff", "bmp", "mp4", "avi", "gif", "webm"] elif self.version == StrictVersion('0.6.0'): return ["png", "jpg", "jpeg", "tif", "tiff", "bmp"] else: return ["png"] def render(self, filename, outputPath, startFrame, endFrame, format, updateCompletion, extraParams={}): comp = 0.0 updateCompletion(comp) output = os.path.join(outputPath,"file") if not os.path.exists(outputPath): os.mkdir(outputPath) if self.version > StrictVersion('0.6.0'): commandline=[self.conf['binary'], filename, "-o", output, "--width", extraParams['width'], "--height", extraParams['height'], "--start", startFrame, "--end", endFrame] if is_true_string(extraParams['transparency']): commandline.append("--transparency") if extraParams['camera']: commandline.extend(["--camera", extraParams['camera']]) elif self.version == StrictVersion('0.6.0'): commandline=[self.conf['binary'], filename, "--export-sequence", output, "--width", extraParams['width'], "--height", extraParams['height']] if is_true_string(extraParams['transparency']): commandline.append("--transparency") else: commandline=[self.conf['binary'], filename, "--export-sequence", output] print(commandline) subprocess.check_call(commandline) updateCompletion(1.0)