コード例 #1
0
ファイル: context_managers.py プロジェクト: itao/wnw
def django(path_=path('web')):
    return nested(
        cd(path_),
        prefix('export DJANGO_SETTINGS_MODULE=goma.settings.' + env.environment),
        prefix('source ' + path('secret', 'env')),
        prefix('source ' + path('venv', 'goma', 'bin', 'activate')),
    )
コード例 #2
0
 def _createValidationFile(self):
     vFile = xbmcvfs.File(common.path(common.AddonProfile() + "backup.bvf"),
                          'w')
     vFile.write(
         json.dumps({
             "name": "Backup Validation File",
             "version": xbmc.getInfoLabel('System.BuildVersion')
         }))
     vFile.write("")
     vFile.close()
     return self.remoteFS.put(
         common.path(common.AddonProfile() + "backup.bvf"),
         self.remoteFS.RootPath + "backup.bvf")
コード例 #3
0
 def run(self, mode=-1):
     result = True
     if not common.any2bool(
             xbmc.getInfoLabel("Window(%s).Property(%s)" %
                               (10000, "SystemRecovery.Running"))):
         # set windows setting to true
         window = xbmcgui.Window(10000)
         window.setProperty("SystemRecovery.Running", "true")
         if self.remoteFS.RootPath is not None and self.remoteFS.RootPath != '':
             common.debug(
                 "Local directory: " + self.localFS.RootPath +
                 ", Remote directory: " + self.remoteFS.RootPath,
                 "SystemRecovery")
             if mode == self.Backup:
                 if common.setting("compress_backups"):
                     # delete old temp file
                     if self.localFS.exists(
                             common.path('special://temp/backup.zip')):
                         self.localFS.rmfile(
                             common.path('special://temp/backup.zip'))
                     # save the remote file system and use the zip vfs
                     self.savedRemoteFS = self.remoteFS
                     self.remoteFS = ZipFileSystem(
                         common.path("special://temp/backup.zip"), "w")
                 self.remoteFS.setRootPath(self.remoteFS.RootPath +
                                           time.strftime("%Y%m%d%H%M") +
                                           "/")
                 # run backup process
                 self.backup()
                 result = self.status >= 0
             elif mode == self.Restore:
                 if self.restorePoint.split('.')[-1] != 'zip':
                     self.remoteFS.setRootPath(self.remoteFS.RootPath +
                                               self.restorePoint + "/")
                 # run restore process
                 self.restore()
                 result = self.status >= 0
             else:
                 result = False
             # cleaning locations
             self.localFS.cleanup()
             self.remoteFS.cleanup()
         else:
             result = False
         # reset the window setting
         window.setProperty("SystemRecovery.Running", "")
     else:
         common.warn(
             'Script already running, no additional instance is needed')
         result = False
     return result
コード例 #4
0
 def _checkValidationFile(self, path):
     # copy the file and open it
     self.localFS.put(path + "backup.bvf",
                      common.path(common.AddonProfile() + "backup.bvf"))
     vFile = xbmcvfs.File(common.path(common.AddonProfile() + "backup.bvf"),
                          'r')
     jsonString = vFile.read()
     vFile.close()
     try:
         json_dict = json.loads(jsonString)
         return xbmc.getInfoLabel(
             'System.BuildVersion') == json_dict['version']
     except ValueError:
         return False
コード例 #5
0
def configure_modbus_logger(cfg, recycle_logs=True):
    """
    Configure the logger.

    Args:
        cfg (Namespace): The PUReST config namespace.
    """

    logger = logging.getLogger("modbus_tk")
    if isinstance(cfg, dict):
        cfg = Configuration(**cfg)

    if cfg.no_modbus_log:
        logger.setLevel(logging.ERROR)
        logger.addHandler(logging.NullHandler())
    else:
        logger.setLevel(logging.DEBUG)
        fmt = "%(asctime)s - %(levelname)s - " "%(module)s::%(funcName)s @ %(lineno)d - %(message)s"
        fmtr = logging.Formatter(fmt)

        if not cfg.no_modbus_console_log:
            sh = logging.StreamHandler()
            sh.setFormatter(fmtr)
            sh.setLevel(cfg.modbus_console_log_level.upper())
            logger.addHandler(sh)

        if not cfg.no_modbus_file_log:
            modbus_log = path(cfg.modbus_log)
            if recycle_logs:
                remove_file(modbus_log)
            make_dir(os.path.dirname(modbus_log))
            fh = logging.FileHandler(modbus_log)
            fh.setFormatter(fmtr)
            fh.setLevel(cfg.modbus_file_log_level.upper())
            logger.addHandler(fh)
コード例 #6
0
def map_states_to_clusters(input_filename):
    result = {}
    with open(common.path("mcl_output"), 'r') as mcl_output:
        for index, line in enumerate(mcl_output.readlines()):
            fields = line.rstrip('\n').split('\t')
            cluster_id = "cluster_%i" % (index)
            for field in fields:
                result[field] = cluster_id
    return result
コード例 #7
0
ファイル: repo.py プロジェクト: itao/wnw
def update(branch=None):
    # deployed repo is just a symlink to dev so do nothing
    if env.environment == "development":
        print 'Skipping repo update because env=development'
        return

    deploy_lock = path('home', 'run', 'deploy-lock.txt')
    if files.exists(deploy_lock):
        print 'Deploy lock exists. Aborting... If you want to remove this ' + \
            'then ssh onto the server and rm %s' % deploy_lock
        sys.exit(1)

    if branch is None:
        branch = "master"

    if not files.exists(path('repo')):
        run('git clone [email protected]:sesameio/goma.git %s' % path('repo'))

    with cd(path('repo')):
        run('git reset --hard HEAD')
        run('git fetch --all')
        run('git checkout origin/%s' % branch)
コード例 #8
0
def choose():
    inventory_option = ui.get_inputs(["Please select option: "], "")[0]
    if inventory_option == "1":
        file_name_local = common.path() + "accounting/items.csv"
        new_table = data_manager.get_table_from_file(file_name_local)
        show_table(new_table)
        return False
    elif inventory_option == "2":
        add_new_table = add(table)
        show_table(add_new_table)
        save(add_new_table)
    elif inventory_option == "3":
        remove_table = remove(table, id())
        try:
            show_table(remove_table)
            save(remove_table)
        except TypeError:
            return False
        return False
    elif inventory_option == "4":
        updated_table = update(table, id())
        try:
            show_table(updated_table)
            save(updated_table)
        except TypeError:
            return False
        return False
    elif inventory_option == "5":
        ui.print_result(which_year_max(table), "Most profitable year")
        return False
    elif inventory_option == "6":
        year = ui.get_inputs([x + ": " for x in ["Year"]], "")[0]
        try:
            while common.validate_years(year) == False:
                ui.print_error_message("Please enter a valid year: ")
                year = ui.get_inputs([x + ": " for x in ["Year"]], "")[0]
        except ValueError:
            return False
        ui.print_result(avg_amount(table, year),
                        "Average (per item) profit in a given year")
        return False
    elif inventory_option == "0":
        global back_to_main_menu
        back_to_main_menu = False
        return back_to_main_menu
    else:
        raise KeyError("There is no such option.")
コード例 #9
0
 def __init__(self):
     self.status = 0
     self.localFS = None
     self.remoteFS = None
     self.restoreFile = None
     self.savedRemoteFS = None
     self.remoteBasePath = None
     self.fileManager = None
     self.restorePoint = None
     self.localFS = LocalFileSystem(common.path('special://home'))
     if common.setting('remote_selection') == 1:
         self.remoteBasePath = common.setting('remote_path_2')
         self.remoteFS = LocalFileSystem(common.setting('remote_path_2'))
         common.setAddonSetting("remote_path", "")
     elif common.setting('remote_selection') == 0:
         self.remoteBasePath = common.setting('remote_path')
         self.remoteFS = LocalFileSystem(common.setting("remote_path"))
コード例 #10
0
ファイル: repo.py プロジェクト: itao/wnw
def clean_pyc():
    with cd(path('repo')):
        run('find -name "*.pyc" | xargs rm -f')
コード例 #11
0
ファイル: web.py プロジェクト: itao/wnw
def update(branch=None):
    repo.update(branch)
    with context_managers.django(common.path('repo')):
        run('pip install -r requirements/{}.txt'.format(env.environment))
コード例 #12
0
ファイル: sales.py プロジェクト: stefandurlesteanu/Codecool
Data table structure:
    * id (string): Unique and random generated identifier
        at least 2 special characters (except: ';'), 2 number, 2 lower and 2 upper case letters)
    * title (string): Title of the game sold
    * price (number): The actual sale price in USD
    * month (number): Month of the sale
    * day (number): Day of the sale
    * year (number): Year of the sale
"""
import ui
import data_manager
import common

list_labels = ["id", "title", "price", "month", "day", "year"]
read_file = common.path() + "sales/sales.csv"
table = data_manager.get_table_from_file(read_file)
year_range_input_options = [
    "Month from", "Day from", "Year from", "Month to", "Day to", "Year to"
]
back_to_main_menu = True


def start_module():
    """
    Starts this module and displays its menu.
     * User can access default special features from here.
     * User can go back to main menu from here.

    Returns:
        None
コード例 #13
0
 def restore(self):
     self.status = 0
     # catch for if the restore point is actually a zip file
     if self.restorePoint.split('.')[-1] == 'zip':
         common.debug("Copying zip file: " + self.restorePoint,
                      "SystemRecovery")
         # set root to data dir home
         self.localFS.setRootPath(common.path("special://temp/"))
         if not self.localFS.exists(
                 common.path("special://temp/" + self.restorePoint)):
             # copy just this file from the remote vfs
             zipFile = []
             zipFile.append(self.remoteBasePath + self.restorePoint)
             self.backupFiles(zipFile, self.remoteFS, self.localFS)
         else:
             common.debug("Zip file exists already", "SystemRecovery")
         # extract the zip file
         zip_vfs = ZipFileSystem(
             common.path("special://temp/" + self.restorePoint), 'r')
         zip_vfs.extract(common.path("special://temp/"))
         zip_vfs.cleanup()
         # set the new remote vfs and fix xbmc path
         self.remoteFS = LocalFileSystem(
             common.path("special://temp/" +
                         self.restorePoint.split(".")[0] + "/"))
         self.localFS.setRootPath(common.path("special://home/"))
     # for restores remote path must exist
     if not os.path.isdir(self.remoteFS.RootPath):
         common.error("Error: Remote path doesn't exist: %s" %
                      self.remoteFS.RootPath)
         self.status = -1
         return
     # create a validation file for backup rotation
     if not self._checkValidationFile(self.remoteFS.RootPath):
         common.error(
             "Validation file can not be validated, restore process skipped"
         )
         self.status = -1
         return
     common.debug("Creating files list", "SystemRecovery")
     allFiles = []
     fileManager = FileManager(self.remoteFS)
     # go through each of the user selected items and write them to the backup store
     if common.setting("backup_config"):
         # check for the existance of an advancedsettings file
         if self.remoteFS.exists(self.remoteFS.RootPath +
                                 "userdata/advancedsettings.xml"):
             fileManager.addFile(self.remoteFS.RootPath +
                                 "userdata/advancedsettings.xml")
         fileManager.addFile('-' + self.remoteFS.RootPath +
                             'userdata/keymaps')
         fileManager.walkTree(self.remoteFS.RootPath + "userdata/keymaps")
         fileManager.addFile('-' + self.remoteFS.RootPath +
                             "userdata/peripheral_data")
         fileManager.walkTree(self.remoteFS.RootPath +
                              "userdata/peripheral_data")
         fileManager.addFile('-' + self.remoteFS.RootPath +
                             "userdata/library")
         fileManager.walkTree(self.remoteFS.RootPath + "userdata/library")
         # this part is an oddity
         dirs, configFiles = self.remoteFS.listdir(self.remoteFS.RootPath +
                                                   "userdata/")
         for aFile in configFiles:
             if (aFile.endswith(".xml")):
                 fileManager.addFile(self.remoteFS.RootPath + "userdata/" +
                                     aFile)
     if common.setting('backup_addons'):
         fileManager.addFile('-' + self.remoteFS.RootPath + "addons")
         fileManager.walkTree(self.remoteFS.RootPath + "addons")
     self.localFS.mkdir(common.path('special://home/userdata'))
     if common.setting('backup_addon_data'):
         fileManager.addFile('-' + self.remoteFS.RootPath +
                             "userdata/addon_data")
         fileManager.walkTree(self.remoteFS.RootPath +
                              "userdata/addon_data")
     if common.setting('backup_database'):
         fileManager.addFile('-' + self.remoteFS.RootPath +
                             "userdata/Database")
         fileManager.walkTree(self.remoteFS.RootPath + "userdata/Database")
     if common.setting("backup_playlists"):
         fileManager.addFile('-' + self.remoteFS.RootPath +
                             "userdata/playlists")
         fileManager.walkTree(self.remoteFS.RootPath + "userdata/playlists")
     if common.setting('backup_profiles'):
         fileManager.addFile('-' + self.remoteFS.RootPath +
                             "userdata/profiles")
         fileManager.walkTree(self.remoteFS.RootPath + "userdata/profiles")
     if common.setting("backup_thumbnails"):
         fileManager.addFile('-' + self.remoteFS.RootPath +
                             "userdata/Thumbnails")
         fileManager.walkTree(self.remoteFS.RootPath +
                              "userdata/Thumbnails")
     # add to array
     allFiles.append({
         "source": self.remoteFS.RootPath,
         "dest": self.localFS.RootPath,
         "files": fileManager.getFiles()
     })
     # check if there are custom directories
     if common.setting('custom_dir_1_enable') and common.setting(
             'backup_custom_dir_1'
     ) is not None and common.setting('backup_custom_dir_1') != '':
         self.localFS.setRootPath(common.setting('backup_custom_dir_1'))
         if self.remoteFS.exists(self.remoteFS.RootPath + "custom_" +
                                 self._createCRC(self.localFS.RootPath)):
             # index files to restore
             fileManager.walkTree(self.remoteFS.RootPath + "custom_" +
                                  self._createCRC(self.localFS.RootPath))
             allFiles.append({
                 "source":
                 self.remoteFS.RootPath + "custom_" +
                 self._createCRC(self.localFS.RootPath),
                 "dest":
                 self.localFS.RootPath,
                 "files":
                 fileManager.getFiles()
             })
         else:
             self.status += 1
             common.debug("Error: Remote path doesn't exist: %s" %
                          self.remoteFS.RootPath)
     if common.setting('custom_dir_2_enable') and common.setting(
             'backup_custom_dir_2'
     ) is not None and common.setting('backup_custom_dir_2') != '':
         self.localFS.setRootPath(common.setting('backup_custom_dir_2'))
         if self.remoteFS.exists(self.remoteFS.RootPath + "custom_" +
                                 self._createCRC(self.localFS.RootPath)):
             # index files to restore
             fileManager.walkTree(self.remoteFS.RootPath + "custom_" +
                                  self._createCRC(self.localFS.RootPath))
             allFiles.append({
                 "source":
                 self.remoteFS.RootPath + "custom_" +
                 self._createCRC(self.localFS.RootPath),
                 "dest":
                 self.localFS.RootPath,
                 "files":
                 fileManager.getFiles()
             })
         else:
             self.status += 1
             common.debug("Error: Remote path doesn't exist: %s" %
                          self.remoteFS.RootPath)
     if common.setting('custom_dir_3_enable') and common.setting(
             'backup_custom_dir_3'
     ) is not None and common.setting('backup_custom_dir_3') != '':
         self.localFS.setRootPath(common.setting('backup_custom_dir_3'))
         if self.remoteFS.exists(self.remoteFS.RootPath + "custom_" +
                                 self._createCRC(self.localFS.RootPath)):
             # index files to restore
             fileManager.walkTree(self.remoteFS.RootPath + "custom_" +
                                  self._createCRC(self.localFS.RootPath))
             allFiles.append({
                 "source":
                 self.remoteFS.RootPath + "custom_" +
                 self._createCRC(self.localFS.RootPath),
                 "dest":
                 self.localFS.RootPath,
                 "files":
                 fileManager.getFiles()
             })
         else:
             self.status += 1
             common.debug("Error: Remote path doesn't exist: %s" %
                          self.remoteFS.RootPath)
     # restore all the files
     for fileGroup in allFiles:
         self.remoteFS.setRootPath(fileGroup['source'])
         self.localFS.setRootPath(fileGroup['dest'])
         self.backupFiles(fileGroup['files'], self.remoteFS, self.localFS)
     if self.restorePoint.split('.')[-1] == 'zip':
         # delete the zip file and the extracted directory
         self.localFS.rmfile(
             common.path("special://temp/" + self.restorePoint))
         self.localFS.rmdir(self.remoteFS.RootPath)
     if common.setting("backup_config"):
         # update the guisettings information (or what we can from it)
         gui_settings = SettingsManager(
             'special://home/userdata/guisettings.xml')
         gui_settings.run()
     # call update addons to refresh everything
     xbmc.executebuiltin('UpdateLocalAddons')
コード例 #14
0
ファイル: default.py プロジェクト: stefandmn/weather.clue
 def run(self, index):
     """ Runs package for content discovery and processing"""
     # check if forecast workflow is enabled
     if not common.setting('Enabled'):
         return
     # check provider configuration
     provider = self.getProviderByCode(common.setting('ProviderCode'))
     common.debug("Found provider to run forecast workflow: %s" % provider)
     if provider is None:
         common.NotificationMsg(32202, 15000)
         return
     if provider is not None and (
         (common.setting('APIKey') == ''
          or common.setting('APIKey') is None)
             and common.any2bool(common.setting("ShowAPIKeyOption"))):
         common.NotificationMsg(32123, 15000)
         return
     # validate provider configuration
     if common.any2bool(common.setting("ShowAPIKeyOption")):
         try:
             provider.validate()
             common.debug(
                 "Content provider is valid, running weather forecast workflow"
             )
         except BaseException as err:
             common.debug(
                 "Content provider is invalid, reset forecast skin properties: %s"
                 % str(err))
             common.NotificationMsg(32203, 20000)
             provider.clear()
             return
     # normalize locations
     count = 0
     found = False
     for id in range(1, 6):
         locname = common.setting('Location%iAction' % id)
         locid = common.setting('Location%i' % id)
         if not found and (locname != '' and locid != ''):
             count += 1
         elif not found and (locname == '' or locid == ''):
             found = True
         if found:
             common.setSkinProperty(12600, 'Location%i' % id)
             common.setsetting('Location%iAction' % id)
             common.setsetting('Location%i' % id)
         else:
             common.setSkinProperty(12600, 'Location%i' % id, locname)
     common.setSkinProperty(12600, 'Locations', str(count))
     common.debug("Active locations: %s" % str(count))
     # identify the right location
     if index is None:
         common.debug(
             'Run GeoIP location discovery due to missing configuration')
         locname, locid = provider.geoip()
     else:
         common.debug("Using location index: %s" % str(index))
         locname = common.setting('Location%sAction' % str(index))
         locid = common.setting('Location%s' % str(index))
     if locid == '' and common.any2int(index) > 1:
         common.debug(
             'Trying first location instead, due to invalid index defined in previous configuration'
         )
         locname = common.setting('Location1Action')
         locid = common.setting('Location1')
     if locid == '':
         common.debug(
             'Run GeoIP location discovery due to wrong configuration')
         locname, locid = provider.geoip()
     # run forecast workflow
     if locname != '':
         # reset skin properties when the location is changed
         if locid != provider.skininfo("Current.Location"):
             provider.clear()
         # publish provider details
         provider.skinproperty('WeatherProvider', provider.name())
         if os.path.isfile(
                 common.path('resources', 'media',
                             provider.code() + '.png')):
             provider.skinproperty(
                 'WeatherProviderLogo',
                 common.path('resources', 'media',
                             provider.code() + '.png'))
         else:
             provider.skinproperty('WeatherProviderLogo',
                                   common.path('icon.png'))
         # call provider forecast
         common.debug('Call forecast for location %s (%s)' %
                      (locname, locid))
         provider.forecast(locname, locid)
     else:
         common.warn('No location found or configured')
         provider.clear()
コード例 #15
0
""" Customer Relationship Management (CRM) module

Data table structure:
    * id (string): Unique and random generated identifier
        at least 2 special characters (except: ';'), 2 number, 2 lower and 2 upper case letters)
    * name (string)
    * email (string)
    * subscribed (int): Is she/he subscribed to the newsletter? 1/0 = yes/no
"""

import ui
import data_manager
import common

list_labels = ["id", "name", "email", "subscribed"]
read_file = common.path() + "crm/customers.csv"
table = data_manager.get_table_from_file(read_file)
back_to_main_menu = True


def start_module():
    """
    Starts this module and displays its menu.
     * User can access default special features from here.
     * User can go back to main menu from here.

    Returns:
        None
    """
    global back_to_main_menu
    back_to_main_menu = True
コード例 #16
0
Data table structure:
    * id (string): Unique and random generated identifier
        at least 2 special characters (except: ';'), 2 number, 2 lower and 2 upper case letters)
    * month (number): Month of the transaction
    * day (number): Day of the transaction
    * year (number): Year of the transaction
    * type (string): in = income, out = outflow
    * amount (int): amount of transaction in USD
"""

import ui
import data_manager
import common

file_name = common.path() + "accounting/items.csv"
table = data_manager.get_table_from_file(file_name)
title_input = "Please enter the product data"
list_labels = ["Id", "Month", "Day", "Year", "Type", "Ammount"]
year_months_day = {
    "01": 31,
    "02": 29,
    "03": 31,
    "04": 30,
    "05": 31,
    "06": 30,
    "07": 31,
    "08": 31,
    "09": 30,
    "10": 31,
    "11": 30,
コード例 #17
0
ファイル: web.py プロジェクト: itao/wnw
def manage(*args):
    with context_managers.django(common.path('web')):
        run('python manage.py %s' % ' '.join('"%s"' % arg for arg in args))
コード例 #18
0
 def backup(self):
     self.status = 0
     # check if remote path exists
     if self.remoteFS.exists(self.remoteFS.RootPath):
         # may be data in here already
         common.debug("Remote path exists - may have old files in it",
                      "SystemRecovery")
     else:
         # make the remote directory
         self.remoteFS.mkdir(self.remoteFS.RootPath)
     # create a validation file for backup rotation
     if not self._createValidationFile():
         # we may not be able to write to this destination for some reason
         common.error(
             "Validation file can not be created, backup process skipped")
         self.status = -1
         return
     common.debug("Creating files list", "SystemRecovery")
     allFiles = []
     fileManager = FileManager(self.localFS)
     # go through each of the user selected items and write them to the backup store
     if common.setting('backup_addons'):
         fileManager.addFile("-" + common.path('special://home/addons'))
         fileManager.walkTree(common.path('special://home/addons'))
     fileManager.addFile("-" + common.path('special://home/userdata'))
     if common.setting('backup_addon_data'):
         fileManager.addFile(
             "-" + common.path('special://home/userdata/addon_data'))
         fileManager.walkTree(
             common.path('special://home/userdata/addon_data'))
     if common.setting('backup_database'):
         fileManager.addFile(
             "-" + common.path('special://home/userdata/Database'))
         fileManager.walkTree(
             common.path('special://home/userdata/Database'))
     if common.setting("backup_playlists"):
         fileManager.addFile(
             "-" + common.path('special://home/userdata/playlists'))
         fileManager.walkTree(
             common.path('special://home/userdata/playlists'))
     if common.setting('backup_profiles'):
         fileManager.addFile(
             "-" + common.path('special://home/userdata/profiles'))
         fileManager.walkTree(
             common.path('special://home/userdata/profiles'))
     if common.setting("backup_thumbnails"):
         fileManager.addFile(
             "-" + common.path('special://home/userdata/Thumbnails'))
         fileManager.walkTree(
             common.path('special://home/userdata/Thumbnails'))
     if common.setting("backup_config"):
         fileManager.addFile("-" +
                             common.path('special://home/userdata/keymaps'))
         fileManager.walkTree(
             common.path('special://home/userdata/keymaps'))
         fileManager.addFile(
             "-" + common.path('special://home/userdata/peripheral_data'))
         fileManager.walkTree(
             common.path('special://home/userdata/peripheral_data'))
         fileManager.addFile('-' +
                             common.path('special://home/userdata/library'))
         fileManager.walkTree(
             common.path('special://home/userdata/library'))
         # this part is an oddity
         dirs, configFiles = self.localFS.listdir(
             common.path('special://home/userdata/'))
         for aFile in configFiles:
             if aFile.endswith(".xml"):
                 fileManager.addFile(
                     common.path('special://home/userdata/') + aFile)
     # add to array
     allFiles.append({
         "source": self.localFS.RootPath,
         "dest": self.remoteFS.RootPath,
         "files": fileManager.getFiles()
     })
     orig_base_path = self.remoteFS.RootPath
     # check if there are custom directories
     if common.setting('custom_dir_1_enable') and common.setting(
             'backup_custom_dir_1'
     ) is not None and common.setting('backup_custom_dir_1') != '':
         # create a special remote path with hash
         self.localFS.setRootPath(common.setting('backup_custom_dir_1'))
         fileManager.addFile("-custom_" +
                             self._createCRC(self.localFS.RootPath))
         # walk the directory
         fileManager.walkTree(self.localFS.RootPath)
         allFiles.append({
             "source":
             self.localFS.RootPath,
             "dest":
             self.remoteFS.RootPath + "custom_" +
             self._createCRC(self.localFS.RootPath),
             "files":
             fileManager.getFiles()
         })
     if common.setting('custom_dir_2_enable') and common.setting(
             'backup_custom_dir_2'
     ) is not None and common.setting('backup_custom_dir_2') != '':
         # create a special remote path with hash
         self.localFS.setRootPath(common.setting('backup_custom_dir_2'))
         fileManager.addFile("-custom_" +
                             self._createCRC(self.localFS.RootPath))
         # walk the directory
         fileManager.walkTree(self.localFS.RootPath)
         allFiles.append({
             "source":
             self.localFS.RootPath,
             "dest":
             self.remoteFS.RootPath + "custom_" +
             self._createCRC(self.localFS.RootPath),
             "files":
             fileManager.getFiles()
         })
     if common.setting('custom_dir_3_enable') and common.setting(
             'backup_custom_dir_3'
     ) is not None and common.setting('backup_custom_dir_3') != '':
         # create a special remote path with hash
         self.localFS.setRootPath(common.setting('backup_custom_dir_3'))
         fileManager.addFile("-custom_" +
                             self._createCRC(self.localFS.RootPath))
         # walk the directory
         fileManager.walkTree(self.localFS.RootPath)
         allFiles.append({
             "source":
             self.localFS.RootPath,
             "dest":
             self.remoteFS.RootPath + "custom_" +
             self._createCRC(self.localFS.RootPath),
             "files":
             fileManager.getFiles()
         })
     # backup all the files
     for fileGroup in allFiles:
         self.localFS.setRootPath(fileGroup['source'])
         self.remoteFS.setRootPath(fileGroup['dest'])
         filesCopied = self.backupFiles(fileGroup['files'], self.localFS,
                                        self.remoteFS)
         if not filesCopied:
             common.warn(
                 "Not all files were copied: %s" % self.localFS.RootPath,
                 "SystemRecovery")
             self.status += 1
     # reset remote and xbmc vfs
     self.localFS.setRootPath("special://home/")
     self.remoteFS.setRootPath(orig_base_path)
     # send the zip file to the real remote vfs
     if common.setting("compress_backups"):
         zip_name = self.remoteFS.RootPath[:-1] + ".zip"
         self.remoteFS.cleanup()
         self.localFS.rename(common.path("special://temp/backup.zip"),
                             common.path("special://temp/" + zip_name))
         fileManager.addFile(common.path("special://temp/" + zip_name))
         # set root to data dir home
         self.localFS.setRootPath(common.path("special://temp/"))
         self.remoteFS = self.savedRemoteFS
         fileCopied = self.backupFiles(fileManager.getFiles(), self.localFS,
                                       self.remoteFS)
         if not fileCopied:
             # zip archive copy filed, inform the user
             common.warn("The destination may not be writeable: %s" %
                         self.remoteFS.RootPath)
             self.ststus = -1
             return
         # delete the temp zip file
         self.localFS.rmfile(common.path("special://temp/" + zip_name))
     # remove old backups
     self._rotateBackups()
コード例 #19
0
from os.path import join
from collections import OrderedDict

sys.path.append(join(os.path.dirname(__file__), "pylib"))

import common
import rustout
import unicode_utils

from rustout import char_escape
from common import path, memoize
from unicode_utils import is_surrogate, cp_to_char

OUTPUT_DIRS = {
    'IDNA_MAPPING': path("components/idna/mapping/src/tables"),
}


def data_path(name):
    return join(common.IDNA_DATA_DIR, name)


def test_data_path(name):
    return join(common.IDNA_TEST_DATA_DIR, name)

# == Version ==


@memoize
def get_unicode_version():
コード例 #20
0
 def __init__(self, settingsFile):
     self._readFile(common.path(settingsFile))
コード例 #21
0
ファイル: store.py プロジェクト: stefandurlesteanu/Codecool
""" Store module

Data table structure:
    * id (string): Unique and random generated identifier
        at least 2 special characters (except: ';'), 2 number, 2 lower and 2 upper case letters)
    * title (string): Title of the game
    * manufacturer (string)
    * price (number): Price in dollars
    * in_stock (number)
"""
import ui
import data_manager
import common

list_labels = ["id", "title", "manufacturer", "price", "in_stock"]
read_file = common.path() + "store/games.csv"
table = data_manager.get_table_from_file(read_file)
back_to_main_menu = True


def start_module():
    """
    Starts this module and displays its menu.
     * User can access default special features from here.
     * User can go back to main menu from here.

    Returns:
        None
    """
    global back_to_main_menu
    back_to_main_menu = True
コード例 #22
0
""" Inventory module

Data table structure:
    * id (string): Unique and random generated identifier
        at least 2 special characters (except: ';'), 2 number, 2 lower and 2 upper case letters)
    * name (string): Name of item
    * manufacturer (string)
    * purchase_year (number): Year of purchase
    * durability (number): Years it can be used
"""
import ui
import data_manager
import common

list_labels = ["id", "name", "manufacturer", "purchase_year", "durability"]
read_file = common.path() + "inventory/inventory.csv"
table = data_manager.get_table_from_file(read_file)
back_to_main_menu = True


def start_module():
    """
    Starts this module and displays its menu.
     * User can access default special features from here.
     * User can go back to main menu from here.

    Returns:
        None
    """
    global back_to_main_menu
    back_to_main_menu = True
コード例 #23
0
import os
import sys

from os.path import join

sys.path.append(join(os.path.dirname(__file__), "pylib"))

import common
import rustout
import unicode_utils

from common import path, memoize
from unicode_utils import is_surrogate

OUTPUT_DIRS = {
    'UCD_CORE': path("components/ucd/core/src/tables"),
    'UCD_AGE': path("components/ucd/age/src/tables"),
    'UCD_BIDI': path("components/ucd/bidi/src/tables"),
    'UCD_NORMAL': path("components/ucd/normal/src/tables"),
    'NORMAL_TESTS': path("components/normal/tests/tables"),
}


def data_path(name):
    return join(common.UCD_DATA_DIR, name)


def test_data_path(name):
    return join(common.UCD_TEST_DATA_DIR, name)

# == Version ==
コード例 #24
0
ファイル: repo.py プロジェクト: itao/wnw
def version():
    with cd(path('repo')):
        run('git rev-parse HEAD')
コード例 #25
0
def get_clusters(model):
    write_model_to_mcl_input(model, common.path("mcl_input"))
    run_mcl(common.path("mcl_input"), common.path("mcl_output"))
    return map_states_to_clusters(common.path("mcl_output"))
コード例 #26
0
ファイル: hr.py プロジェクト: stefandurlesteanu/Codecool
""" Inventory module

Data table structure:
    * id (string): Unique and random generated identifier
        at least 2 special characters (except: ';'), 2 number, 2 lower and 2 upper case letters)
    * name (string): Name of item
    * manufacturer (string)
    * purchase_year (number): Year of purchase
    * durability (number): Years it can be used
"""
import ui
import data_manager
import common

list_labels = ["id", "name", "year"]
read_file = common.path() + "hr/persons.csv"
table = data_manager.get_table_from_file(read_file)
back_to_main_menu = True


def start_module():
    """
    Starts this module and displays its menu.
     * User can access default special features from here.
     * User can go back to main menu from here.

    Returns:
        None
    """
    global back_to_main_menu
    back_to_main_menu = True