def test_includeSoftware(self):
     software = Software(1,"name","text","downloadUrl","applicationSubCategory")
     software.imageList = [Image("teste")]
     software.LinkList = [Link("teste")]
     software.screenshotList = [Screenshot("teste")]
     software.review = Review("teste",1)
     self.sDao.includeSoftware(software)
Esempio n. 2
0
    def init_software(self):
        self._software = Software()
        self._software.setup()
        self._software.print_header()

        self._user = User()
        self._user.setup()
Esempio n. 3
0
 def start_software(self, software, open_file=''):
     from software import Software
     self._software = Software()
     self._software.setup()
     self.user.setup()
     self._software.start(software, open_file)
     self._software.print_header()
Esempio n. 4
0
class Tank(Singleton):

    def init_os(self):
        self._user = User()
        self._user.setup()


    def init_software(self):
        self._software = Software()
        self._software.setup()
        self._software.print_header()

        self._user = User()
        self._user.setup()


    @property
    def software(self):
        return Software()

    @property
    def user(self):
        return self._user

    @property
    def context(self):
        return self._software.context

    @property
    def data(self):
        return libData.get_data()
Esempio n. 5
0
class Tank(Singleton):
    def init_os(self):
        # self._notificator = Notificator()
        # self._notificator.setup()
        pass

    def init_software(self):
        self._software = Software()
        self._software.setup()
        self._software.print_header()

        self._user = User()
        self._user.setup()

        self._context = Context()
        self._context.setup()

    @property
    def software(self):
        return self._software

    @property
    def user(self):
        return self._user

    @property
    def context(self):
        return self._context
Esempio n. 6
0
def citeas_product_get(id):
    if id.endswith('.pdf'):
        return jsonify({'error_message': 'PDF documents are not supported.'})
    elif id.endswith(('.doc', 'docx')):
        return jsonify({'error_message': 'Word documents are not supported.'})
    else:
        my_software = Software(id)
        my_software.find_metadata()
        return jsonify(my_software.to_dict())
Esempio n. 7
0
    def test_version_add(self):
        package_name = "sample package"
        package = Software(package_name)
        version = Version("1.0", datetime.now().isoformat())
        package.add_versions(version)

        software_item = [package.__dict__]
        software = {"software": software_item, "mounts": []}
        empty = {"software": [], "mounts": []}
        result = compare_and_update_dicts(empty, software)
        self.assertTrue(result['software'][0]['package_name'] == package_name)
        self.assertTrue(result['software'][0]['versions'][0]['name'] == "1.0")
    def readSoftware(self, id):
        '''
        retorna o software pelo id
        carrega todos os relacionamento do software
            software_screenshot
            software_link
            software_image
            software_review
        '''
        software=None
        try:
            self.cur = self.conn.cursor()
            stmt = 'SELECT *'
            stmt += "\nFROM software_software" 
            stmt += "\nWHERE id=?"
            stmt += ';'
            self.cur.execute(stmt,[id])
            data = self.cur.fetchone()
            if data:
              software= Software(data["id"],data["name"],data["text"],data["downloadUrl"],data["applicationSubCategory"])
              
            stmt = 'select * from software_screenshot where software_id=?'
            self.cur.execute(stmt,[id])
            rows = self.cur.fetchall()
            for row in rows:
              software.screenshotList.append(Screenshot(row["url_screenshot"]))

            stmt = 'select * from software_link where software_id=?'
            self.cur.execute(stmt,[id])
            rows = self.cur.fetchall()
            for row in rows:
              software.linkList.append(Link(row["url_link"]))

            stmt = 'select * from software_image where software_id=?'
            self.cur.execute(stmt,[id])
            rows = self.cur.fetchall()
            for row in rows:
              software.imageList.append(Image(row["url_image"]))

            stmt = 'select * from software_review where software_id=?'
            self.cur.execute(stmt,[id])
            data = self.cur.fetchone()
            if data:
              software.review = Review(data["reviewBody"],data["ratingValue"])


            return software
        finally:
            self.cur.close()
Esempio n. 9
0
    def init():
        """
        Initialisiert die Datenbank, sofern das noch nicht geschehen ist und
        muss im Idealfall sofort aufgerufen werden.
        """
        if Database.database is not None: return
        if not os.path.exists(Database.file):
            with open(Database.file, 'w'):
                pass
        Database.load()

        # Melde die Datenbank für Statusänderungen der enthaltenen Software bei
        # der Klasse an. So können Installations-, Deinstallations- und Update-
        # Events abgegriffen werden.
        Software.registerStateListener(Database.softwareUpdated)
Esempio n. 10
0
 def getLinkDescriptions(self, linksWithContent, year):
     for i in range(0, len(linksWithContent), 1):
         description = ""
         wikiWithContentSource = requests.get(linksWithContent[i]).text
         wikiWithContentSoup = BeautifulSoup(wikiWithContentSource, 'lxml')
         wikiWithContentContent = wikiWithContentSoup.find('div',
                                                           id='bodyContent')
         paragraphs = []
         for paragraph in wikiWithContentContent.findAll('p'):
             temp = "".join(line.strip()
                            for line in paragraph.text.split("\n"))
             if "<style" in str(paragraph) or "</style>" in str(paragraph) or "<script" in str(paragraph) or \
                     "</script>" in str(paragraph) or len(temp) == 0:
                 pass
             else:
                 paragraphs.append("".join(
                     line.strip() for line in paragraph.text.split("\n")))
         j = 0
         while len(description) < 500 and j < len(paragraphs):
             k = 0
             while len(description) < 500 and k < len(paragraphs[j]):
                 description += paragraphs[j][k]
                 k += 1
             j += 1
             description += " "
         description += "..."
         software = Software(
             linksWithContent[i].split("/")[3].split(":")[1], description,
             year)
         self.result.emit(software)
         self.progress.emit(33 / len(linksWithContent))
Esempio n. 11
0
    def readSoftware(repository):
        """
        Liest die Software in einer Repository ein und speichert das übergebene
        Verzeichnis für spätere Verwendung zwischen.

        Parameters
        ----------
        repository : str
            Pfad zum Verzeichnis mit allen Softwaredeskriptoren.
        """
        Database.repository = repository
        dirs = [f.path for f in os.scandir(repository) if f.is_dir()]
        for d in dirs:
            s = Software(d)
            s.setState(Software.INSTALLED if Database.
                       hasSoftware(s) else Software.UNINSTALLED)
            Database.software[s.slug] = s
Esempio n. 12
0
 def showResults(self, year):
     self.view.progressBar.setValue(100)
     softwareList = self.model.getAllFromYear(year)
     for i in softwareList:
         software = Software(i[0], i[1], str(i[2]))
         self.view.addToList(self.view.scrapeResultsList, software)
     finishMessage = QtWidgets.QMessageBox()
     finishMessage.question(self.view.window, "Sara",
                            "Sara is finished searching.", finishMessage.Ok)
Esempio n. 13
0
def open_software(software: Software):
    """打开软件"""
    bin_path = os.path.join(software.home_path, 'bin',
                            software.get_execute_file_name())
    if not os.path.exists(bin_path):
        print(f'不在在 {bin_path}')
        return
    cmd = f'start {bin_path}'
    print(cmd)
    subprocess.call(cmd, shell=True)
def parseHtmlToObject(item):
  software = Software(1,str(item.name), item.text, str(item.downloadUrl), str(item.applicationSubCategory))
  images = []
  for image in item.get_all('image') :
    images.append(Image(str(image)))
  software.imageList = images
  
  screenshots = []
  for screenshot in item.get_all('screenshot') :
    screenshots.append(Screenshot(str(screenshot)))
  software.screenshotList=screenshots
  
  urls = []
  for url in item.get_all('url') :
    urls.append(Link(str(url)))
  software.linkList=urls
  
  software.review = Review(item.review.reviewBody,item.review.ratingValue)
  return software
Esempio n. 15
0
 def startSearching(self):
     self.view.libraryResultsList.clear()
     if len(self.view.librarySearchLine.text()
            ) == 0 or self.view.librarySearchLine.text() == "Enter a year":
         self.listAll()
     else:
         year = int(self.view.librarySearchLine.text())
         softwareList = self.model.getAllFromYear(year)
         for i in softwareList:
             software = Software(i[0], i[1], str(i[2]))
             self.view.addToList(self.view.libraryResultsList, software)
Esempio n. 16
0
    def test_software_class(self):
        package_name = "test"
        package_names = ["foo", "test"]
        software = Software(package_name)
        package = check_sofware_if_exists(package_name, package_names,
                                          [software])
        self.assertTrue(package == software)

        package_names = ["Foo", "bar"]
        package = check_sofware_if_exists(package_name, package_names,
                                          [software])
        self.assertTrue(package == None)
Esempio n. 17
0
def test_source_preview():
    my_software = Software('https://cran.r-project.org/web/packages/stringr')
    my_software.find_metadata()
    resp = my_software.to_dict()
    provenance = resp['provenance'][8]['source_preview']
    assert provenance['title'] == '<i>Snapshot of title data found at https://cran.r-project.org/web/packages/stringr/DESCRIPTION.</i><br>Package: stringr<br />Title: <span class="highlight">' \
                                  'Simple, Consistent Wrappers for Common String Operations</span><br />Version: 1.4.0<br />Authors@R: <br />    c(person(given = &quot;Hadley&quot;,<br />' \
                                  '             family = &quot;Wickham&quot;,<br />             role = c(&quot;aut&quot;, &quot;cre&quot;, &quot;cph&quot;),<br />             ' \
                                  'email = &quot;[email protected]&quot;),<br />      person(given = &quot;RStudio&quot;,<br />             role = c(&quot;cph&quot;, &quot;fnd&quot;)))<br />' \
                                  'Description: A consistent, simple and easy to use set of<br />    wrappers around the fantastic &#x27;stringi'
    assert provenance['author'] == '<i>Snapshot of author data found at https://cran.r-project.org/web/packages/stringr/DESCRIPTION.</i><br>Package: ' \
                                   'stringr<br />Title: Simple, Consistent Wrappers for Common String Operations<br />Version: 1.4.0<br />Authors@R: <br />    ' \
                                   'c(person(given = "<span class="highlight">Hadley</span>",<br />             family = "<span class="highlight">Wickham</span>",<br />             ' \
                                   'role = c("aut", "cre", "cph"),<br />             email = "*****@*****.**"),<br />      person(given = "RStudio",<br />             ' \
                                   'role = c("cph", "fnd")))<br />Description: A consistent, simple and easy to use set of<br />    wrappers around the fantastic stringi package. All function and<br />    ' \
                                   'argument names (and positions) are consistent, all functions deal with<br />    "NA"s and zero length vectors in the same way, and the output from<br />    one function is easy t'
    assert provenance['year'] == '<i>Snapshot of year data found at https://cran.r-project.org/web/packages/stringr/DESCRIPTION.</i><br>tringr<br />BugReports: ' \
                                 'https://github.com/tidyverse/stringr/issues<br />Depends: R (&gt;= 3.1)<br />Imports: glue (&gt;= 1.2.0), magrittr, stringi (&gt;= 1.1.7)<br />Suggests: covr, htmltools, ' \
                                 'htmlwidgets, knitr, rmarkdown, testthat<br />VignetteBuilder: knitr<br />Encoding: UTF-8<br />LazyData: true<br />RoxygenNote: 6.1.1<br />' \
                                 'NeedsCompilation: no<br />Packaged: 2019-02-09 16:03:19 UTC; hadley<br />Author: Hadley Wickham [aut, cre, cph],<br />  RStudio [cph, fnd]<br />' \
                                 'Maintainer: Hadley Wickham &lt;[email protected]&gt;<br />Repository: CRAN<br />Date/Publication: <span class="highlight">2019-02-10 03:40:03 UTC</span><br />'
Esempio n. 18
0
    def test_version_upgrade(self):
        package_name = "sample package"
        package = Software(package_name)
        version = Version("1.0", datetime.now().isoformat())
        package.add_versions(version)

        software_item = [package.__dict__]
        software = {"software": software_item, "mounts": []}

        package2 = Software(package_name)
        version = Version("2.0", datetime.now().isoformat())
        package2.add_versions(version)
        software_item2 = [package2.__dict__]

        second_software = {"software": software_item2, "mounts": []}
        result = compare_and_update_dicts(software, second_software)
        self.assertTrue(result['software'][0]['package_name'] == package_name)
        self.assertTrue(result['software'][0]['versions'][0].get(
            'removal_date', None) != None)
        self.assertTrue(result['software'][0]['versions'][1]['name'] == '2.0')
Esempio n. 19
0
def get_software_list(config_file='') -> List[Software]:
    """根据配置获取软件列表"""
    config = TranslatorXConfig(config_file)
    software_home_path = config.get_software_home_path()
    omegat_workspace = config.get_omegat_workspace()
    software_name_list = config.get_software_name_list()
    software_version_list = config.get_software_version_list()
    translation_locale = config.get_translation_locale()
    if not translation_locale:
        translation_locale = Software.DEFAULT_LOCALE

    print('读取配置为')
    print(f'软件安装目录 {software_home_path}')
    print(f'OmegaT 工作目录 {omegat_workspace}')
    if not os.path.exists(omegat_workspace):
        print('OmegaT 工作目录不在在')
    print(f'翻译区域 {translation_locale}')
    print()

    software_list = []
    for i, name in enumerate(software_name_list):
        if i >= len(software_version_list):
            # 取最后一个
            version = software_version_list[-1]
        else:
            # 取对应版本
            version = software_version_list[i]
        if '-' in version:
            version, release_version = version.split('-')
        else:
            release_version = 1
        software = Software(
            name=name,
            version=version,
            release_version=release_version,
            software_home_path=software_home_path,
            omegat_workspace=omegat_workspace,
            translation_locale=translation_locale,
        )
        software_list.append(software)
    return software_list
Esempio n. 20
0
    def init_software(self, software=''):
        if not software: software = os.getenv('SOFTWARE')

        if not self._software:
            if software == 'maya':
                from maya_dcc import Maya
                self._software = Maya()
            elif software == 'max':
                from max_dcc import Max
                self._software = Max()
            elif software == 'nuke':
                from nuke_dcc import Nuke
                self._software = Nuke()
            elif software == 'houdini':
                from houdini_dcc import Houdini
                self._software = Houdini()
            else:
                from software import Software
                self._software = Software()

        return self._software
Esempio n. 21
0
        nuke.pluginAddPath(paths)


#*******************
# TOOLBAR
add_plugin_paths()

project_data = libData.get_data()
menu_data = project_data['software']['NUKE']['MENU']
menuNode = nuke.menu('Nodes').addMenu(project_data['project']['name'],
                                      icon='nuke.ico')

# nuke.addOnScriptSave(add_write_node)

for menu_item in menu_data:
    Software().add_menu(menuNode, menu_item)

menuNode.addSeparator()

add_gizmo_menu(menuNode)


#*******************
# FUNC
def save():
    from utils import arSave
    reload(arSave)
    arSave.main()
    LOG.info('SAVE')

Esempio n. 22
0
 def press_btnOpenNuke(self):
     LOG.debug('Nuke')
     Software('nuke').start_software()
Esempio n. 23
0
 def press_btnOpenHoudini(self):
     Software().start('houdini')
Esempio n. 24
0
 def press_btnOpenMax(self):
     Software().start('max')
Esempio n. 25
0
def test_provenance():
    my_software = Software('http://yt-project.org')
    my_software.find_metadata()
    resp = my_software.to_dict()
    provenance = resp['provenance']

    steps_with_content = [
        {
            'step_name': 'UserInputStep',
            'parent_step_name': 'NoneType'
        },
        {
            'step_name': 'WebpageStep',
            'parent_step_name': 'UserInputStep'
        },
        {
            'step_name': 'GithubRepoStep',
            'parent_step_name': 'WebpageStep'
        },
        {
            'step_name': 'GithubCitationFileStep',
            'parent_step_name': 'GithubRepoStep'
        },
        {
            'step_name': 'CrossrefResponseStep',
            'parent_step_name': 'GithubCitationFileStep'
        },
        {
            'step_name': 'CrossrefResponseMetadataStep',
            'parent_step_name': 'CrossrefResponseStep'
        },
    ]

    steps_without_content = [{
        'step_name': 'CrossrefResponseStep',
        'parent_step_name': 'UserInputStep'
    }, {
        'step_name': 'ArxivResponseStep',
        'parent_step_name': 'UserInputStep'
    }, {
        'step_name': 'GithubRepoStep',
        'parent_step_name': 'UserInputStep'
    }, {
        'step_name': 'BitbucketRepoStep',
        'parent_step_name': 'UserInputStep'
    }, {
        'step_name': 'CranLibraryStep',
        'parent_step_name': 'UserInputStep'
    }, {
        'step_name': 'PypiLibraryStep',
        'parent_step_name': 'UserInputStep'
    }, {
        'step_name': 'RelationHeaderStep',
        'parent_step_name': 'WebpageStep'
    }, {
        'step_name': 'CrossrefResponseStep',
        'parent_step_name': 'WebpageStep'
    }, {
        'step_name': 'GithubCodemetaFileStep',
        'parent_step_name': 'GithubRepoStep'
    }]

    for step in steps_with_content:
        for p in provenance:
            if p['name'] == step['step_name'] and p[
                    'parent_step_name'] == step['parent_step_name']:
                assert p['has_content'] is True

    for step in steps_without_content:
        for p in provenance:
            if p['name'] == step['step_name'] and p[
                    'parent_step_name'] == step['parent_step_name']:
                assert p['has_content'] is False
Esempio n. 26
0
def test_citations(url, expected):
    my_software = Software(url)
    my_software.find_metadata()
    assert my_software.citation_plain == expected
Esempio n. 27
0
 def gen_conf(self):
     Software.gen_conf(self)
     pass
Esempio n. 28
0
 def press_btnOpenHoudini(self):
     LOG.debug('Houdini')
     Software().start_software()
Esempio n. 29
0
 def confirmEdit(self):
     self.view.disableAddEdit()
     software = Software(self.view.addEditTeam.text(),
                         self.view.addEditDescription.toPlainText(),
                         str(self.view.addEditYear.text()))
     self.model.replace(software)
Esempio n. 30
0
 def software(self):
     return Software()
Esempio n. 31
0
 def listAll(self):
     self.view.libraryResultsList.clear()
     softwareList = self.model.getAll()
     for i in softwareList:
         software = Software(i[0], i[1], str(i[2]))
         self.view.addToList(self.view.libraryResultsList, software)
Esempio n. 32
0
 def press_btnOpenNuke(self):
     Software().start('nuke')
Esempio n. 33
0
            self[key].append(value)
        else:
            self[key] = [value]

    def __missing__(self, key):
        LOG.debug('MISSING Key: {}'.format(key))
        return key


#************************
# START
import argparse

parser = argparse.ArgumentParser(
    description='Setup your pipeline and start scripts.')
parser.add_argument('-s', '--script', help='add script: software')
parser.add_argument('-so', '--software', help='add software: nuke')
parser.add_argument('-p', '--proxy', action='store_true')
args = parser.parse_args()

if args.script:
    Setup()
    if args.script == 'software':
        from software import Software
        soft = Software()
        soft.setup(args.software)
        soft.start()
    elif args.script == 'desktop':
        import arDesktop
        arDesktop.main()
Esempio n. 34
0
 def press_btnOpenMaya(self):
     LOG.debug('Maya')
     Software('maya').start_software()