connect format field to form_field_format for its initial value
"""distutils / __pkginfo__ helpers for cubicweb applications"""importosfromos.pathimportisdir,joindefget_distutils_datafiles(cube,i18n=True,recursive=False):""" :param cube: application cube's name """data_files=[]data_files+=get_basepyfiles(cube)data_files+=get_webdatafiles(cube)ifi18n:data_files+=get_i18nfiles(cube)data_files+=get_viewsfiles(cube,recursive=recursive)data_files+=get_migrationfiles(cube)data_files+=get_schemafiles(cube)returndata_files## listdir filter funcs ################################################defnopyc_and_nodir(fname):ifisdir(fname)orfname.endswith('.pyc')orfname.endswith('~'):returnFalsereturnTruedefno_version_control(fname):iffnamein('CVS','.svn','.hg'):returnFalseiffname.endswith('~'):returnFalsereturnTruedefbasepy_files(fname):iffname.endswith('.py')andfname!='setup.py':returnTruereturnFalsedefchain(*filters):defnewfilter(fname):forfilterfuncinfilters:ifnotfilterfunc(fname):returnFalsereturnTruereturnnewfilterdeflistdir_with_path(path='.',filterfunc=None):iffilterfunc:return[join(path,fname)forfnameinos.listdir(path)iffilterfunc(join(path,fname))]else:return[join(path,fname)forfnameinos.listdir(path)]## data_files helpers ##################################################CUBES_DIR=join('share','cubicweb','cubes')defget_i18nfiles(cube):"""returns i18n files in a suitable format for distutils's data_files parameter """i18ndir=join(CUBES_DIR,cube,'i18n')potfiles=[(i18ndir,listdir_with_path('i18n',chain(no_version_control,nopyc_and_nodir)))]returnpotfilesdefget_viewsfiles(cube,recursive=False):"""returns views files in a suitable format for distutils's data_files parameter :param recursive: include views' subdirs recursively if True """ifrecursive:datafiles=[]fordirpath,dirnames,filenamesinos.walk('views'):filenames=[join(dirpath,fname)forfnameinfilenamesifnopyc_and_nodir(join(dirpath,fname))]dirpath=join(CUBES_DIR,cube,dirpath)datafiles.append((dirpath,filenames))returndatafileselse:viewsdir=join(CUBES_DIR,cube,'views')return[(viewsdir,listdir_with_path('views',filterfunc=nopyc_and_nodir))]defget_basepyfiles(cube):"""returns cube's base python scripts (tali18n.py, etc.) in a suitable format for distutils's data_files parameter """return[(join(CUBES_DIR,cube),[fnameforfnameinos.listdir('.')iffname.endswith('.py')andfname!='setup.py'])]defget_webdatafiles(cube):"""returns web's data files (css, png, js, etc.) in a suitable format for distutils's data_files parameter """return[(join(CUBES_DIR,cube,'data'),listdir_with_path('data',filterfunc=no_version_control))]defget_migrationfiles(cube):"""returns cube's migration scripts in a suitable format for distutils's data_files parameter """return[(join(CUBES_DIR,cube,'migration'),listdir_with_path('migration',no_version_control))]defget_schemafiles(cube):"""returns cube's schema files in a suitable format for distutils's data_files parameter """return[(join(CUBES_DIR,cube,'schema'),listdir_with_path('schema',no_version_control))]