Exemple #1
0
class Storage:
    def __init__(self):
        self.actions = CopyOnWriteArrayList()
        self.currentId = AtomicInteger(0)

    def addAction(self, actionMeta):
        if list(filter(lambda action: action.name == actionMeta.name, self.actions)):
            raise Exception("The action {} has already been added".format(actionMeta.name))
        self.actions.add(actionMeta)

    def getAction(self, name):
        return filter(lambda action: action.name == name, self.actions)[0]

    def updateAction(self, name, actionMeta):
         action = self.getAction(name)
         action.name = actionMeta.name
         action.label = actionMeta.label
         action.description = actionMeta.description
         action.callable = actionMeta.callable
         action.activatable = actionMeta.activatable
class Library:
    def __init__(self):
        self.books = CopyOnWriteArrayList()
        self.currentId = AtomicInteger(0)
        self.readOnly = False

    def addBook(self, author, title, cover=None, force=False):
        if list(
                filter(
                    lambda book: book.author == author and book.title == title,
                    self.books)):
            raise Exception("This book has already been added to the library")
        if not self.readOnly or force:
            self.books.add(
                Book(self.currentId.incrementAndGet(), author, title, cover))

    def getBook(self, bookId):
        return filter(lambda book: book.id == bookId, self.books)[0]

    def updateBook(self, bookId, author, title, cover=None):
        book = self.getBook(bookId)
        if not self.readOnly:
            book.author = author
            book.title = title
            if cover:
                book.cover = cover

    def removeBook(self, bookId):
        if not self.readOnly:
            self.books.removeIf(PyPredicate(lambda book: book.id == bookId))

    def findBooks(self, searchString):
        return list(filter(lambda book: searchString is None or re.search(searchString.upper(), book.author.upper())\
                            or re.search(searchString.upper(), book.title.upper()), self.books))

    def getAuthors(self):
        return sorted(list(set(list(map(lambda book: book.author,
                                        self.books)))),
                      key=lambda author: author.lower())
Exemple #3
0
from java.util.logging import LogManager
from java.util.concurrent import Executors, CopyOnWriteArrayList
from java.io import File
from com.threecrickets.scripturian.document import DocumentFileSource
from com.threecrickets.scripturian.exception import DocumentNotFoundException
from com.threecrickets.prudence.service import ApplicationService

#
# Common
#

common_libraries_document_source = DocumentFileSource('common/libraries/', File(document.source.basePath, 'common/libraries/'), 'default', 'py', 5000)
common_fragments_document_source = DocumentFileSource('common/web/fragments/', File(document.source.basePath, 'common/web/fragments/'), 'index', 'py', 5000)

common_tasks_document_sources = CopyOnWriteArrayList()
common_tasks_document_sources.add(DocumentFileSource('common/tasks/', File(document.source.basePath, 'common/tasks/'), 'default', 'py', 5000))
common_handlers_document_sources = CopyOnWriteArrayList()
common_handlers_document_sources.add(DocumentFileSource('common/handlers/', File(document.source.basePath, 'common/handlers/'), 'default', 'py', 5000))

document.librarySources.add(common_libraries_document_source)

#
# Utilities
#

def execute_or_default(name, default=None):
	try:
		document.execute(name)
	except DocumentNotFoundException:
		if default is None:
			default = '/defaults/' + name 
Exemple #4
0
#
# Common
#

common_libraries_document_source = DocumentFileSource(
    'common/libraries/', File(document.source.basePath, 'common/libraries/'),
    'default', 'py', 5000)
common_fragments_document_source = DocumentFileSource(
    'common/web/fragments/',
    File(document.source.basePath, 'common/web/fragments/'), 'index', 'py',
    5000)

common_tasks_document_sources = CopyOnWriteArrayList()
common_tasks_document_sources.add(
    DocumentFileSource('common/tasks/',
                       File(document.source.basePath, 'common/tasks/'),
                       'default', 'py', 5000))
common_handlers_document_sources = CopyOnWriteArrayList()
common_handlers_document_sources.add(
    DocumentFileSource('common/handlers/',
                       File(document.source.basePath, 'common/handlers/'),
                       'default', 'py', 5000))

document.librarySources.add(common_libraries_document_source)

#
# Utilities
#


def execute_or_default(name, default=None):
Exemple #5
0
    url = fix_url(url)
    if len(url) > 0:
        if url[-1] == '/':
            url = url[:-1]
        router.attach(url, add_trailing_slash)

language_manager = executable.manager

#
# Libraries
#

libraries_document_sources = CopyOnWriteArrayList()
libraries_document_sources.add(
    DocumentFileSource(application_base + libraries_base_path,
                       application_base_path + libraries_base_path,
                       documents_default_name, 'py',
                       minimum_time_between_validity_checks))
libraries_document_sources.add(common_libraries_document_source)

#
# Dynamic web
#

dynamic_web_document_source = DocumentFileSource(
    application_base + dynamic_web_base_path,
    application_base_path + dynamic_web_base_path,
    dynamic_web_default_document, 'py', minimum_time_between_validity_checks)
fragments_document_sources = CopyOnWriteArrayList()
fragments_document_sources.add(
    DocumentFileSource(application_base + fragments_base_path,