def create_app(config_filename, debug=False): app = Flask(__name__) app.config.from_object(config_filename) app.login_manager = login_manager log = logging.getLogger('werkzeug') db.init_app(app) CSRFProtect(app) login_manager.init_app(app) app.register_blueprint(indexController.blueprint) app.register_blueprint(quotesController.blueprint) app.register_blueprint(macrosController.blueprint) app.register_blueprint(statsController.blueprint) app.register_blueprint(loginController.blueprint) if debug: log.setLevel(logging.NOTSET) app.logger.setLevel(logging.NOTSET) # compile SCSS to CSS with every request. # useful for updating/debugging styles. app.wsgi_app = SassMiddleware( app.wsgi_app, {'app': ('static/scss', 'static/css', 'static/css')}) else: log.setLevel(logging.INFO) app.logger.setLevel(logging.INFO) # compile once at start. build_directory("app/static/scss", "app/static/css") return app
def compile_assets(): """Compile yuraland assets (CSS, JS, etc.).""" # Compile SCSS. os.makedirs("dist/assets/css/") build_directory( sass_path="assets/scss/", css_path="dist/assets/css/", output_style="compressed", strip_extension=True, ) # Copy all the rest. for directory in os.listdir("assets/"): if directory != "scss": shutil.copytree(f"assets/{directory}", f"dist/assets/{directory}")
def test_builder_build_directory(self): css_path = self.css_path result_files = build_directory(self.sass_path, css_path) self.assertEqual(7, len(result_files)) self.assertEqual('a.scss.css', result_files['a.scss']) with open(os.path.join(css_path, 'a.scss.css'), **utf8_if_py3) as f: css = f.read() self.assertEqual(A_EXPECTED_CSS, css) self.assertEqual('b.scss.css', result_files['b.scss']) with open(os.path.join(css_path, 'b.scss.css'), **utf8_if_py3) as f: css = f.read() self.assertEqual(B_EXPECTED_CSS, css) self.assertEqual('c.scss.css', result_files['c.scss']) with open(os.path.join(css_path, 'c.scss.css'), **utf8_if_py3) as f: css = f.read() self.assertEqual(C_EXPECTED_CSS, css) self.assertEqual('d.scss.css', result_files['d.scss']) with open(os.path.join(css_path, 'd.scss.css'), **utf8_if_py3) as f: css = f.read() self.assertEqual(D_EXPECTED_CSS, css) self.assertEqual('e.scss.css', result_files['e.scss']) with open(os.path.join(css_path, 'e.scss.css'), **utf8_if_py3) as f: css = f.read() self.assertEqual(E_EXPECTED_CSS, css) self.assertEqual(os.path.join('subdir', 'recur.scss.css'), result_files[os.path.join('subdir', 'recur.scss')]) with open(os.path.join(css_path, 'g.scss.css'), **utf8_if_py3) as f: css = f.read() self.assertEqual(G_EXPECTED_CSS, css) self.assertEqual(os.path.join('subdir', 'recur.scss.css'), result_files[os.path.join('subdir', 'recur.scss')]) with open(os.path.join(css_path, 'subdir', 'recur.scss.css'), **utf8_if_py3) as f: css = f.read() self.assertEqual(SUBDIR_RECUR_EXPECTED_CSS, css)
def test_builder_build_directory(self): temp_path = tempfile.mkdtemp() sass_path = os.path.join(temp_path, 'sass') css_path = os.path.join(temp_path, 'css') shutil.copytree('test', sass_path) result_files = build_directory(sass_path, css_path) assert len(result_files) == 5 assert result_files['a.scss'] == 'a.scss.css' with open(os.path.join(css_path, 'a.scss.css'), **utf8_if_py3) as f: css = f.read() assert css == A_EXPECTED_CSS assert result_files['b.scss'] == 'b.scss.css' with open(os.path.join(css_path, 'b.scss.css'), **utf8_if_py3) as f: css = f.read() assert css == B_EXPECTED_CSS assert result_files['c.scss'] == 'c.scss.css' with open(os.path.join(css_path, 'c.scss.css'), **utf8_if_py3) as f: css = f.read() assert css == C_EXPECTED_CSS assert result_files['d.scss'] == 'd.scss.css' with open(os.path.join(css_path, 'd.scss.css'), **utf8_if_py3) as f: css = f.read() self.assertEqual(D_EXPECTED_CSS, css) assert (result_files[os.path.join('subdir', 'recur.scss')] == os.path.join('subdir', 'recur.scss.css')) with open(os.path.join(css_path, 'subdir', 'recur.scss.css'), **utf8_if_py3) as f: css = f.read() self.assertEqual(SUBDIR_RECUR_EXPECTED_CSS, css) shutil.rmtree(temp_path)
def test_builder_build_directory(self): css_path = self.css_path result_files = build_directory(self.sass_path, css_path) assert len(result_files) == 7 assert 'a.scss.css' == result_files['a.scss'] with io.open( os.path.join(css_path, 'a.scss.css'), encoding='UTF-8', ) as f: css = f.read() assert A_EXPECTED_CSS == css assert 'b.scss.css' == result_files['b.scss'] with io.open( os.path.join(css_path, 'b.scss.css'), encoding='UTF-8', ) as f: css = f.read() assert B_EXPECTED_CSS == css assert 'c.scss.css' == result_files['c.scss'] with io.open( os.path.join(css_path, 'c.scss.css'), encoding='UTF-8', ) as f: css = f.read() assert C_EXPECTED_CSS == css assert 'd.scss.css' == result_files['d.scss'] with io.open( os.path.join(css_path, 'd.scss.css'), encoding='UTF-8', ) as f: css = f.read() assert D_EXPECTED_CSS == css assert 'e.scss.css' == result_files['e.scss'] with io.open( os.path.join(css_path, 'e.scss.css'), encoding='UTF-8', ) as f: css = f.read() assert E_EXPECTED_CSS == css self.assertEqual( os.path.join('subdir', 'recur.scss.css'), result_files[os.path.join('subdir', 'recur.scss')], ) with io.open( os.path.join(css_path, 'g.scss.css'), encoding='UTF-8', ) as f: css = f.read() assert G_EXPECTED_CSS == css self.assertEqual( os.path.join('subdir', 'recur.scss.css'), result_files[os.path.join('subdir', 'recur.scss')], ) with io.open( os.path.join(css_path, 'subdir', 'recur.scss.css'), encoding='UTF-8', ) as f: css = f.read() assert SUBDIR_RECUR_EXPECTED_CSS == css
def test_output_style(self): css_path = self.css_path result_files = build_directory(self.sass_path, css_path, output_style='compressed') self.assertEqual(7, len(result_files)) self.assertEqual('a.scss.css', result_files['a.scss']) with open(os.path.join(css_path, 'a.scss.css'), **utf8_if_py3) as f: css = f.read() self.assertEqual('body{background-color:green}body a{color:blue}\n', css)
def test_output_style(self): css_path = self.css_path result_files = build_directory(self.sass_path, css_path, output_style='compressed') self.assertEqual(6, len(result_files)) self.assertEqual('a.scss.css', result_files['a.scss']) with open(os.path.join(css_path, 'a.scss.css'), **utf8_if_py3) as f: css = f.read() self.assertEqual('body{background-color:green}body a{color:blue}', css)
def test_output_style(self): css_path = self.css_path result_files = build_directory(self.sass_path, css_path, output_style='compressed') assert len(result_files) == 7 assert 'a.scss.css' == result_files['a.scss'] with io.open( os.path.join(css_path, 'a.scss.css'), encoding='UTF-8', ) as f: css = f.read() self.assertEqual('body{background-color:green}body a{color:blue}\n', css)
def test_builder_build_directory(self): css_path = self.css_path result_files = build_directory(self.sass_path, css_path) assert len(result_files) == 7 assert 'a.scss.css' == result_files['a.scss'] with io.open( os.path.join(css_path, 'a.scss.css'), encoding='UTF-8', ) as f: css = f.read() assert A_EXPECTED_CSS == css assert 'b.scss.css' == result_files['b.scss'] with io.open( os.path.join(css_path, 'b.scss.css'), encoding='UTF-8', ) as f: css = f.read() assert B_EXPECTED_CSS == css assert 'c.scss.css' == result_files['c.scss'] with io.open( os.path.join(css_path, 'c.scss.css'), encoding='UTF-8', ) as f: css = f.read() assert C_EXPECTED_CSS == css assert 'd.scss.css' == result_files['d.scss'] with io.open( os.path.join(css_path, 'd.scss.css'), encoding='UTF-8', ) as f: css = f.read() assert D_EXPECTED_CSS == css assert 'e.scss.css' == result_files['e.scss'] with io.open( os.path.join(css_path, 'e.scss.css'), encoding='UTF-8', ) as f: css = f.read() assert E_EXPECTED_CSS == css self.assertEqual( os.path.join('subdir', 'recur.scss.css'), result_files[os.path.join('subdir', 'recur.scss')] ) with io.open( os.path.join(css_path, 'g.scss.css'), encoding='UTF-8', ) as f: css = f.read() assert G_EXPECTED_CSS == css self.assertEqual( os.path.join('subdir', 'recur.scss.css'), result_files[os.path.join('subdir', 'recur.scss')] ) with io.open( os.path.join(css_path, 'subdir', 'recur.scss.css'), encoding='UTF-8', ) as f: css = f.read() assert SUBDIR_RECUR_EXPECTED_CSS == css
def test_builder_build_directory(self): css_path = self.css_path result_files = build_directory(self.sass_path, css_path) self.assertEqual(7, len(result_files)) self.assertEqual('a.scss.css', result_files['a.scss']) with open(os.path.join(css_path, 'a.scss.css'), **utf8_if_py3) as f: css = f.read() self.assertEqual(A_EXPECTED_CSS, css) self.assertEqual('b.scss.css', result_files['b.scss']) with open(os.path.join(css_path, 'b.scss.css'), **utf8_if_py3) as f: css = f.read() self.assertEqual(B_EXPECTED_CSS, css) self.assertEqual('c.scss.css', result_files['c.scss']) with open(os.path.join(css_path, 'c.scss.css'), **utf8_if_py3) as f: css = f.read() self.assertEqual(C_EXPECTED_CSS, css) self.assertEqual('d.scss.css', result_files['d.scss']) with open(os.path.join(css_path, 'd.scss.css'), **utf8_if_py3) as f: css = f.read() self.assertEqual(D_EXPECTED_CSS, css) self.assertEqual('e.scss.css', result_files['e.scss']) with open(os.path.join(css_path, 'e.scss.css'), **utf8_if_py3) as f: css = f.read() self.assertEqual(E_EXPECTED_CSS, css) self.assertEqual( os.path.join('subdir', 'recur.scss.css'), result_files[os.path.join('subdir', 'recur.scss')] ) with open(os.path.join(css_path, 'g.scss.css'), **utf8_if_py3) as f: css = f.read() self.assertEqual(G_EXPECTED_CSS, css) self.assertEqual( os.path.join('subdir', 'recur.scss.css'), result_files[os.path.join('subdir', 'recur.scss')] ) with open(os.path.join(css_path, 'subdir', 'recur.scss.css'), **utf8_if_py3) as f: css = f.read() self.assertEqual(SUBDIR_RECUR_EXPECTED_CSS, css)
import sys import textwrap import fnmatch import concurrent.futures from sassutils import builder def rename_one(file): scss_name = os.path.splitext(file)[0] no_ext = os.path.splitext(scss_name)[0] renamed = no_ext + ".css" os.rename(file, renamed) def compileSass(dir, remove_source=False, async=False): builder.build_directory(dir, dir) #compiled = glob.glob(os.path.join(dir,"*.scss.css")) compiled = [] w = os.walk(dir) for root, dirs, files in w: for file in files: if fnmatch.fnmatch(file, "*.scss.css"): compiled.append(os.path.join(root,file)) if async: with concurrent.futures.ProcessPoolExecutor() as e: for file in compiled: e.submit(rename_one, file) else: for file in compiled: rename_one(file)
import fnmatch import concurrent.futures from sassutils import builder def rename_one(file): scss_name = os.path.splitext(file)[0] no_ext = os.path.splitext(scss_name)[0] renamed = no_ext + ".css" os.rename(file, renamed) def compileSass(dir, remove_source=False, async=False): builder.build_directory(dir, dir) #compiled = glob.glob(os.path.join(dir,"*.scss.css")) compiled = [] w = os.walk(dir) for root, dirs, files in w: for file in files: if fnmatch.fnmatch(file, "*.scss.css"): compiled.append(os.path.join(root, file)) if async: with concurrent.futures.ProcessPoolExecutor() as e: for file in compiled: e.submit(rename_one, file) else: for file in compiled: rename_one(file)
from flask import Flask from flask import request from flask import render_template from sassutils import builder from search import search import json app = Flask(__name__) compiled = builder.build_directory(sass_path="static/scss", css_path="static/css", strip_extension=False) if app.debug or app.env == "development": print("Compiled scss:", compiled) @app.route('/', methods=['GET']) def index(): """ Index Page :return: rendered Page """ query = request.args.get('q') print(query) if query is not None: return search_component(query) else: return render_template('index.html')
tokens=tokens, leads=leads ) @app.route("/minutes/new", methods=['GET', 'POST']) def minutes_new(): if request.method == 'POST': return minutes(-1, {'minutes':request.form['minutes'], 'id':-1}) return render_template('minutes_new.html') if os.environ.get('FLASK_DEBUG'): # Sass debugging from sassutils.wsgi import SassMiddleware app.wsgi_app = SassMiddleware(app.wsgi_app, { __name__: ('static/sass', 'static/css', '/static/css') }) else: # Build all sass files once for production from sassutils.builder import build_directory build_directory( os.path.join(os.path.dirname(__file__), 'static', 'sass'), os.path.join(os.path.dirname(__file__), 'static', 'css'), ) if __name__ == "__main__": from subprocess import call os.environ['FLASK_APP'] = __file__ #os.environ['FLASK_DEBUG'] = '1' call(['flask', 'run'])
else: if the_file[0] == '_': os.remove(file_path) else: new_file_name = re.sub(self.RE_EXTENTIONS, '', file_path) os.rename(file_path, new_file_name) except Exception, e: print e print '> SASS/SCSS files compiling...' result = clearDir(self.output_dir) if not result['status']: print '> ERROR! SASS/SCSS compile FAIL:\n',result['error'] exit() for item in os.listdir(self.src_dir): if os.path.isdir(self.src_dir+'/'+item): os.mkdir(self.output_dir+'/'+item) builder.build_directory(self.src_dir+'/'+item, self.output_dir+'/'+item) builder.build_directory(self.src_dir, self.output_dir) clearOutput(self.output_dir) print '> CSS files were created'