コード例 #1
0
    def interactively_get_available_packagesystem_path(
        self, 
        pending_user_input=None,
        ):
        r'''Interactively gets available packagesystem path.

        Returns string.
        '''
        self.session.io_manager._assign_user_input(pending_user_input)
        while True:
            getter = self.session.io_manager.make_getter(where=self._where)
            getter.append_space_delimited_lowercase_string('name')
            with self.backtracking:
                package_name = getter._run()
            if self.session.backtrack():
                return
            package_name = \
                stringtools.string_to_accent_free_snake_case(package_name)
            package_path = '.'.join([
                self._current_storehouse_packagesystem_path, 
                package_name,
                ])
            if self.configuration.packagesystem_path_exists(package_path):
                line = 'Package {!r} already exists.'
                line = line.format(package_path)
                self.session.io_manager.display([line, ''])
            else:
                return package_path
コード例 #2
0
ファイル: Wrangler.py プロジェクト: willingc/abjad
    def get_available_path(
        self, 
        storehouse_path=None,
        prompt_string=None,
        ):
        r'''Gets available path in `storehouse_path`.

        Sets `storehouse_path` equal to current storehouse path when
        `storehouse_path` is none.

        Returns string.
        '''
        storehouse_path = storehouse_path or self._current_storehouse_path
        while True:
            prompt_string = prompt_string or 'package name'
            getter = self._io_manager.make_getter(where=self._where)
            getter.append_space_delimited_lowercase_string(prompt_string)
            name = getter._run()
            if self._should_backtrack():
                return
            name = stringtools.string_to_accent_free_snake_case(name)
            path = os.path.join(storehouse_path, name)
            if os.path.exists(path):
                line = 'path already exists: {!r}.'
                line = line.format(path)
                self._io_manager.display([line, ''])
            else:
                return path
コード例 #3
0
ファイル: StylesheetWrangler.py プロジェクト: willingc/abjad
    def make_asset(self):
        r'''Makes asset.

        Returns none.
        '''
        from scoremanager import managers
        with self._controller_context:
            # TODO: extend to allow creation in current score
            storehouse_path = self._select_storehouse_path(
                abjad_library=False,
                user_library=True,
                abjad_score_packages=False,
                user_score_packages=False,
                )
            if self._should_backtrack():
                return
        getter = self._io_manager.make_getter(where=self._where)
        getter.append_string('stylesheet name')
        file_path = getter._run()
        if self._should_backtrack():
            return
        file_path = stringtools.string_to_accent_free_snake_case(file_path)
        if not file_path.endswith('.ily'):
            file_path = file_path + '.ily'
        file_path = os.path.join(storehouse_path, file_path)
        manager = managers.FileManager(
            file_path, 
            session=self._session,
            )
        if self._session.is_test:
            manager._make_empty_asset()
        else:
            manager.edit()
コード例 #4
0
ファイル: ScoreManager.py プロジェクト: willingc/abjad
 def _find_svn_score_name(self):
     from scoremanager import managers
     manager = self._find_up_to_date_manager(
         managers.ScorePackageManager,
         repository='svn',
         system=False,
         )
     if manager:
         title = manager._get_title()
         title = stringtools.string_to_accent_free_snake_case(title)
         return title
コード例 #5
0
    def interactively_make_asset(
        self,
        pending_user_input=None,
        ):
        r'''Interactively makes asset.

        Returns none.
        '''
        from scoremanager import managers
        self.session.io_manager._assign_user_input(pending_user_input)
        with self.backtracking:
            storehouse_path = \
                self.interactively_select_asset_storehouse_filesystem_path(
                in_built_in_asset_library=False,
                in_user_asset_library=True,
                in_built_in_score_packages=False,
                in_user_score_packages=False,
                )
        if self.session.backtrack():
            return
        getter = self.session.io_manager.make_getter(where=self._where)
        getter.append_string('stylesheet name')
        stylesheet_file_path = getter._run()
        if self.session.backtrack():
            return
        stylesheet_file_path = \
            stringtools.string_to_accent_free_snake_case(
            stylesheet_file_path)
        if not stylesheet_file_path.endswith('.ily'):
            stylesheet_file_path = stylesheet_file_path + '.ily'
        stylesheet_file_path = os.path.join(
            storehouse_path,
            stylesheet_file_path,
            )
        manager = managers.FileManager(
            stylesheet_file_path, 
            session=self.session,
            )
        if self.session.is_test:
            manager._make_empty_asset()
        else:
            manager.interactively_edit()