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
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
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()
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
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()