示例#1
0
 def create_repo(self, name):
     print('New repo is created')
     for repo in self.repo:
         if repo.get_name() == name:
             raise ValueError('A repository with this name already exists.')
     new_repo = Repository(name=name)
     self.repo.append(new_repo)
示例#2
0
def test_add_item():
    repo = Repository()

    repo.add_item(1)
    assert repo.get_items() == [1]
    repo.undo()
    assert repo.get_items() == []
示例#3
0
def save_card(word, image_path, filepath='data/cards/', filename=None):
    '''Функция для генерации и сохранения изображения
    Возвращает filepath+filename
    
    Параметры:
    word - слово, чей контент будет на карточке
    image - задний фон изображения
    filepath - путь для хранения изображения
    filename - имя изображения
    '''

    content = urbandictionary_api.get_word_data(word)
    image = Image.open(image_path)
    rep = Repository()
    fonts = rep.fonts
    model = CardModel(content=content,
                      image=image,
                      auth_font=fonts.aut_font,
                      cat_font=fonts.cat_font,
                      def_font=fonts.def_font,
                      ex_font=fonts.ex_font,
                      rect_font=fonts.rect_font,
                      word_font=fonts.word_font,
                      thumb_font=fonts.thumb_font)

    card_drawer = CardDrawer(model)
    card_drawer.draw_card()
    path = card_drawer.save(filepath=filepath, filename=filename)

    return path
示例#4
0
def test_replace_item():
    repo = Repository()

    repo.add_item(0)
    repo.add_item(1)
    repo.add_item(1)
    repo.add_item(1)

    repo.replace_item(lambda item: item == 1, 0)
    assert repo.get_items() == [0, 0, 1, 1]
    repo.undo()
    assert repo.get_items() == [0, 1, 1, 1]
示例#5
0
def test_get_items():
    repo = Repository()

    repo.add_item(0)
    repo.add_item(1)
    assert repo.get_item(lambda item: item == 1) == 1

    repo.add_item(1)
    assert repo.get_items() == [0, 1, 1]
    assert repo.get_items(lambda item: item == 1) == [1, 1]
    assert not repo.get_items(lambda item: item > 1)

    repo.add_item(2)
    assert repo.get_items(lambda item: item > 1) == [2]
示例#6
0
 def get_repo(self, id=None, name=None):
     if name is not None:
         for repo in self.repo:
             if repo.get_name() == name:
                 return repo
     elif id is not None:
         for repo in self.repo:
             if repo.get_id() == id:
                 return repo
         return None
     else:  #  From App init
         repo_id = os.listdir(
             PATH_REPO)  #  Read files in repositories folder
         repo = [Repository(id=id)
                 for id in repo_id]  #  Create Repositories objec from file
         return repo
示例#7
0
def test_get_balance():
    repo = Repository()

    repo.add_item(Transaction(2, 1909, 'in', 'freelancing'))
    repo.add_item(Transaction(24, 178, 'out', 'food'))
    repo.add_item(Transaction(1, 1200, 'out', 'rent'))
    repo.add_item(Transaction(14, 54, 'out', 'food'))
    repo.add_item(Transaction(14, 55023, 'in', 'salary'))
    repo.add_item(Transaction(16, 550, 'in', 'freelancing'))
    repo.add_item(Transaction(23, 1200, 'out', 'project'))
    repo.add_item(Transaction(2, 230, 'out', 'food'))
    repo.add_item(Transaction(16, 176, 'out', 'food'))
    repo.add_item(Transaction(5, 188, 'out', 'food'))

    assert get_balance(repo, 2) == 479
    assert get_balance(repo, 5) == 291
示例#8
0
def test_get_max():
    repo = Repository()

    repo.add_item(Transaction(2, 1909, 'in', 'freelancing'))
    repo.add_item(Transaction(2, 178, 'out', 'food'))
    repo.add_item(Transaction(1, 1200, 'out', 'rent'))
    repo.add_item(Transaction(14, 54, 'out', 'food'))
    repo.add_item(Transaction(14, 55023, 'in', 'salary'))
    repo.add_item(Transaction(14, 550, 'in', 'freelancing'))
    repo.add_item(Transaction(23, 1200, 'out', 'project'))
    repo.add_item(Transaction(2, 230, 'out', 'food'))
    repo.add_item(Transaction(16, 176, 'out', 'food'))
    repo.add_item(Transaction(5, 188, 'out', 'food'))

    assert get_max(repo, 'in', 14).get_money_amount() == 55023
    assert get_max(repo, 'out', 2).get_money_amount() == 230
示例#9
0
    def repositoryUser(self, nameUser, numPage=80):
        queryVariables = {
            "nameUser": nameUser,
            "numPage": numPage
        }
        RepositoryAffiliation = {'OWNER': [], 'COLLABORATOR': []}
        # RepositoryAffiliation = {'OWNER': [], 'COLLABORATOR': []}
        for repAff in RepositoryAffiliation.keys():
            queryVariables["RepositoryAffiliation"] = repAff
            after = ''
            c=0
            while True:
                query = Query.repInfo(after)
                resp = self.requestApiGitHubV4(query, queryVariables)
                for rep in resp['data']['user']['repositories']['nodes']:
                    RepositoryAffiliation[repAff].append(Repository(repAff, self.user, rep))

                if not resp['data']['user']['repositories']['pageInfo']['hasNextPage']:
                    break
                after = resp['data']['user']['repositories']['pageInfo']['endCursor']
            break

        return RepositoryAffiliation['OWNER'], RepositoryAffiliation['COLLABORATOR']
示例#10
0
#!/usr/bin/env python3
# Copyright (c) 2015 Nuxi, https://nuxi.nl/
#
# SPDX-License-Identifier: BSD-2-Clause

import logging
import os
import sys

from src import util
from src.repository import Repository

# Setup logging
logging.basicConfig(level=logging.INFO)

# Locations relative to the source tree.
DIR_ROOT = os.getcwd()
DIR_DISTFILES = os.path.join(DIR_ROOT, '_obj/distfiles')
DIR_TMP = os.path.join(DIR_ROOT, '_obj/fixup_patches')

# Parse all of the BUILD rules.
repo = Repository(None)  # type: ignore
for arg in sys.argv[1:]:
    for filename in util.walk_files(arg):
        if os.path.basename(filename) == 'BUILD':
            repo.add_build_file(filename, DIR_DISTFILES)

# Regenerate all the patches.
for distfile in repo.get_distfiles():
    distfile.fixup_patches(DIR_TMP)
示例#11
0
# Locations relative to the source tree.
DIR_ROOT = os.getcwd()
DIR_DISTFILES = os.path.join(DIR_ROOT, '_obj/distfiles')
DIR_INSTALL = os.path.join(DIR_ROOT, '_obj/install')
DIR_PACKAGES_ARCHLINUX = os.path.join(DIR_ROOT, '_obj/packages/archlinux')
DIR_PACKAGES_CYGWIN = os.path.join(DIR_ROOT, '_obj/packages/cygwin')
DIR_PACKAGES_DEBIAN = os.path.join(DIR_ROOT, '_obj/packages/debian')
DIR_PACKAGES_FREEBSD = os.path.join(DIR_ROOT, '_obj/packages/freebsd')
DIR_PACKAGES_HOMEBREW = os.path.join(DIR_ROOT, '_obj/packages/homebrew')
DIR_PACKAGES_NETBSD = os.path.join(DIR_ROOT, '_obj/packages/netbsd')
DIR_PACKAGES_OPENBSD = os.path.join(DIR_ROOT, '_obj/packages/openbsd')
DIR_PACKAGES_REDHAT = os.path.join(DIR_ROOT, '_obj/packages/redhat')
DIR_REPOSITORY = os.path.join(DIR_ROOT, 'packages')

# Parse all of the BUILD rules.
repo = Repository(DIR_INSTALL)
for filename in util.walk_files(DIR_REPOSITORY):
    if os.path.basename(filename) == 'BUILD':
        repo.add_build_file(filename, DIR_DISTFILES)
target_packages = repo.get_target_packages()

catalogs = {
    ArchLinuxCatalog(None, DIR_PACKAGES_ARCHLINUX),
    CygwinCatalog(None, DIR_PACKAGES_CYGWIN),
    DebianCatalog(None, DIR_PACKAGES_DEBIAN),
    FreeBSDCatalog(None, DIR_PACKAGES_FREEBSD),
    HomebrewCatalog(None, DIR_PACKAGES_HOMEBREW, 'http://example.com/'),
    NetBSDCatalog(None, DIR_PACKAGES_NETBSD),
    OpenBSDCatalog(None, DIR_PACKAGES_OPENBSD),
    RedHatCatalog(None, DIR_PACKAGES_REDHAT),
}
示例#12
0
 def __init__(self):
     super().__init__()
     self.__repo = Repository()
     self.init_repo()
示例#13
0
 def __init__(self, addr):
     self.rp = Repository(addr)
示例#14
0
#!/usr/bin/env python3
# Copyright (c) 2015 Nuxi, https://nuxi.nl/
#
# This file is distributed under a 2-clause BSD license.
# See the LICENSE file for details.

import logging
import os
import sys

from src import util
from src.repository import Repository

# Setup logging
logging.basicConfig(level=logging.INFO)

# Locations relative to the source tree.
DIR_ROOT = os.getcwd()
DIR_DISTFILES = os.path.join(DIR_ROOT, '_obj/distfiles')
DIR_TMP = os.path.join(DIR_ROOT, '_obj/fixup_patches')

# Parse all of the BUILD rules.
repo = Repository(None)
for filename in util.walk_files(sys.argv[1]):
    if os.path.basename(filename) == 'BUILD':
        repo.add_build_file(filename, DIR_DISTFILES)

# Regenerate all the patches.
for distfile in repo.get_distfiles():
    distfile.fixup_patches(DIR_TMP)
示例#15
0
# Location of the catalog signing keys.
ARCHLINUX_PRIVATE_KEY = '31344B15'
CYGWIN_PRIVATE_KEY = 'A4836F43'
DEBIAN_PRIVATE_KEY = '31344B15'
FREEBSD_PRIVATE_KEY = '/home/ed/.cloudabi-ports-freebsd.key'
REDHAT_PRIVATE_KEY = '31344B15'

# The Homebrew repository needs to know its own URL.
HOMEBREW_URL = 'https://nuxi.nl/distfiles/cloudabi-ports/homebrew/'

# Zap the old temporary directory.
util.remove_and_make_dir(DIR_TMP)

# Parse all of the BUILD rules.
repo = Repository(os.path.join(DIR_TMP, 'install'))
# repo = Repository(os.path.join(os.getcwd(), '_obj/install'))
for filename in util.walk_files(os.path.join(os.getcwd(), 'packages')):
    if os.path.basename(filename) == 'BUILD':
        repo.add_build_file(filename, DIR_DISTFILES)
target_packages = repo.get_target_packages()

# The catalogs that we want to create.
archlinux_path = os.path.join(DIR_TMP, 'archlinux')
archlinux_catalog = ArchLinuxCatalog(DIR_ARCHLINUX_CATALOG, archlinux_path)
cygwin_path = os.path.join(DIR_TMP, 'cygwin')
cygwin_catalog = CygwinCatalog(DIR_CYGWIN_CATALOG, cygwin_path)
debian_path = os.path.join(DIR_TMP, 'debian')
debian_catalog = DebianCatalog(DIR_DEBIAN_CATALOG, debian_path)
freebsd_path = os.path.join(DIR_TMP, 'freebsd')
freebsd_catalog = FreeBSDCatalog(DIR_FREEBSD_CATALOG, freebsd_path)