Exemplo n.º 1
0
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
Exemplo n.º 2
0
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])
Exemplo n.º 3
0
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]
    )
Exemplo n.º 4
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:
                    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)
Exemplo n.º 5
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:
Exemplo n.º 6
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)