コード例 #1
0
ファイル: tasks.py プロジェクト: odtvince/udata
def perform_dist(buildno=None):
    header('Building a distribuable package')
    cmd = ['python setup.py']
    if buildno:
        cmd.append('egg_info -b {0}'.format(buildno))
    cmd.append('bdist_wheel')
    lrun(' '.join(cmd), pty=True)
コード例 #2
0
def perform_dist(buildno=None):
    header('Building a distribuable package')
    cmd = ['python setup.py']
    if buildno:
        cmd.append('egg_info -b {0}'.format(buildno))
    cmd.append('bdist_wheel')
    lrun(' '.join(cmd), pty=True)
コード例 #3
0
ファイル: tasks.py プロジェクト: vinyll/udata
def jstest(hot=False):
    """Run JS tests suite"""
    header("Run client tests suite")
    cmd = "webpack-dev-server --config webpack.config.test.js"
    if hot:
        cmd += " --hot --inline"
    nrun(cmd, pty=True)
コード例 #4
0
ファイル: tasks.py プロジェクト: anukat2015/udata
def test(fast=False):
    '''Run tests suite'''
    header('Run tests suite')
    cmd = 'nosetests --rednose --force-color udata'
    if fast:
        cmd = ' '.join([cmd, '--stop'])
    lrun(cmd, pty=True)
コード例 #5
0
ファイル: tasks.py プロジェクト: simudream/udata
def jstest(hot=False):
    '''Run JS tests suite'''
    header('Run client tests suite')
    cmd = 'webpack-dev-server --config webpack.config.test.js'
    if hot:
        cmd += ' --hot --inline'
    nrun(cmd, pty=True)
コード例 #6
0
ファイル: tasks.py プロジェクト: anukat2015/udata
def jstest(hot=False):
    '''Run JS tests suite'''
    header('Run client tests suite')
    cmd = 'webpack-dev-server --config webpack.config.test.js'
    if hot:
        cmd += ' --hot --inline'
    nrun(cmd, pty=True)
コード例 #7
0
ファイル: tasks.py プロジェクト: seiteta/udata
def test(ctx, fast=False):
    '''Run tests suite'''
    header('Run tests suite')
    cmd = 'nosetests --rednose --force-color udata'
    if fast:
        cmd = ' '.join([cmd, '--stop'])
    lrun(cmd)
コード例 #8
0
ファイル: tasks.py プロジェクト: vinyll/udata
def test(fast=False):
    """Run tests suite"""
    header("Run tests suite")
    cmd = "nosetests --rednose --force-color udata"
    if fast:
        cmd = " ".join([cmd, "--stop"])
    lrun(cmd, pty=True)
コード例 #9
0
ファイル: tasks.py プロジェクト: silviodc/udata
def assets_build(ctx, progress=False):
    '''Install and compile assets'''
    header('Building static assets')
    cmd = 'npm run assets:build -- --config {0}.js'
    if progress:
        cmd += ' --progress'
    lrun(cmd.format('webpack.config.prod'), pty=True)
    lrun(cmd.format('webpack.widgets.config'), pty=True)
コード例 #10
0
ファイル: tasks.py プロジェクト: vinyll/udata
def assets_build(progress=False):
    """Install and compile assets"""
    header("Building static assets")
    cmd = "npm run assets:build -- --config {0}.js"
    if progress:
        cmd += " --progress"
    lrun(cmd.format("webpack.config.prod"), pty=True)
    lrun(cmd.format("webpack.widgets.config"), pty=True)
コード例 #11
0
ファイル: tasks.py プロジェクト: vinyll/udata
def cover():
    """Run tests suite with coverage"""
    header("Run tests suite with coverage")
    lrun(
        "nosetests --rednose --force-color \
        --with-coverage --cover-html --cover-package=udata",
        pty=True,
    )
コード例 #12
0
def cover(ctx, html=False):
    '''Run tests suite with coverage'''
    header('Run tests suite with coverage')
    cmd = 'pytest --cov udata --cov-report term'
    if html:
        cmd = ' '.join((cmd, '--cov-report html:reports/python/cover'))
    with ctx.cd(ROOT):
        ctx.run(cmd, pty=True)
コード例 #13
0
ファイル: tasks.py プロジェクト: anukat2015/udata
def assets_build(progress=False):
    '''Install and compile assets'''
    header('Building static assets')
    cmd = 'npm run assets:build -- --config {0}.js'
    if progress:
        cmd += ' --progress'
    nrun(cmd.format('webpack.config.prod'), pty=True)
    nrun(cmd.format('webpack.widgets.config'), pty=True)
コード例 #14
0
def assets(progress=False):
    '''Install and compile assets'''
    header('Building static assets')
    cmd = 'webpack -c --config {0}.js'
    if progress:
        cmd += ' --progress'
    nrun(cmd.format('webpack.config.prod'), pty=True)
    nrun(cmd.format('webpack.widgets.config'), pty=True)
コード例 #15
0
ファイル: tasks.py プロジェクト: odtvince/udata
def cover(ctx, html=False):
    '''Run tests suite with coverage'''
    header('Run tests suite with coverage')
    cmd = 'pytest --cov udata --cov-report term'
    if html:
        cmd = ' '.join((cmd, '--cov-report html:reports/python/cover'))
    with ctx.cd(ROOT):
        ctx.run(cmd, pty=True)
コード例 #16
0
def i18n(ctx, update=False):
    '''Extract translatable strings'''
    header('Extract translatable strings')

    info('Extract Python strings')
    lrun('python setup.py extract_messages')
    if update:
        lrun('python setup.py update_catalog')

    info('Extract JavaScript strings')
    keys = set()
    catalog = {}
    catalog_filename = join(ROOT, 'js', 'locales',
                            '{}.en.json'.format(I18N_DOMAIN))
    if exists(catalog_filename):
        with codecs.open(catalog_filename, encoding='utf8') as f:
            catalog = json.load(f)

    globs = '*.js', '*.vue', '*.hbs'
    regexps = [
        re.compile(r'(?:|\.|\s|\{)_\(\s*(?:"|\')(.*?)(?:"|\')\s*(?:\)|,)'
                   ),  # JS _('trad')
        re.compile(r'v-i18n="(.*?)"'),  # Vue.js directive v-i18n="trad"
        re.compile(r'"\{\{\{?\s*\'(.*?)\'\s*\|\s*i18n\}\}\}?"'
                   ),  # Vue.js filter {{ 'trad'|i18n }}
        re.compile(r'{{_\s*"(.*?)"\s*}}'),  # Handlebars {{_ "trad" }}
        re.compile(r'{{_\s*\'(.*?)\'\s*}}'),  # Handlebars {{_ 'trad' }}
        re.compile(r'\:[a-z0-9_\-]+="\s*_\(\'(.*?)\'\)\s*"'
                   ),  # Vue.js binding :prop="_('trad')"
    ]

    for directory, _, _ in os.walk(join(ROOT, 'js')):
        glob_patterns = (iglob(join(directory, g)) for g in globs)
        for filename in itertools.chain(*glob_patterns):
            print('Extracting messages from {0}'.format(green(filename)))
            content = codecs.open(filename, encoding='utf8').read()
            for regexp in regexps:
                for match in regexp.finditer(content):
                    key = match.group(1)
                    key = key.replace('\\n', '\n')
                    keys.add(key)
                    if key not in catalog:
                        catalog[key] = key

    # Remove old/not found translations
    for key in catalog.keys():
        if key not in keys:
            del catalog[key]

    with codecs.open(catalog_filename, 'w', encoding='utf8') as f:
        json.dump(catalog,
                  f,
                  sort_keys=True,
                  indent=4,
                  ensure_ascii=False,
                  encoding='utf8',
                  separators=(',', ': '))
コード例 #17
0
ファイル: tasks.py プロジェクト: grouan/udata
def qa():
    '''Run a quality report'''
    header('Performing static analysis')
    info('Python static analysis')
    flake8_results = lrun('flake8 udata', warn=True)
    info('JavaScript static analysis')
    jshint_results = nrun('jshint js', warn=True)
    if flake8_results.failed or jshint_results.failed:
        exit(flake8_results.return_code or jshint_results.return_code)
コード例 #18
0
ファイル: tasks.py プロジェクト: vinyll/udata
def qa():
    """Run a quality report"""
    header("Performing static analysis")
    info("Python static analysis")
    flake8_results = lrun("flake8 udata --jobs 1", pty=True, warn=True)
    info("JavaScript static analysis")
    eslint_results = lrun("npm -s run lint", pty=True, warn=True)
    if flake8_results.failed or eslint_results.failed:
        exit(flake8_results.return_code or eslint_results.return_code)
    print(green("OK"))
コード例 #19
0
ファイル: tasks.py プロジェクト: anukat2015/udata
def qa():
    '''Run a quality report'''
    header('Performing static analysis')
    info('Python static analysis')
    flake8_results = lrun('flake8 udata', pty=True, warn=True)
    info('JavaScript static analysis')
    eslint_results = nrun('eslint js/ --ext .vue,.js', pty=True, warn=True)
    if flake8_results.failed or eslint_results.failed:
        exit(flake8_results.return_code or eslint_results.return_code)
    print(green('OK'))
コード例 #20
0
def qa():
    '''Run a quality report'''
    header('Performing static analysis')
    info('Python static analysis')
    flake8_results = lrun('flake8 udata', pty=True, warn=True)
    info('JavaScript static analysis')
    eslint_results = nrun('eslint js/ --ext .vue,.js', pty=True, warn=True)
    if flake8_results.failed or eslint_results.failed:
        exit(flake8_results.return_code or eslint_results.return_code)
    print(green('OK'))
コード例 #21
0
ファイル: tasks.py プロジェクト: odtvince/udata
def qa(ctx):
    '''Run a quality report'''
    header('Performing static analysis')
    info('Python static analysis')
    flake8_results = lrun('flake8 udata --jobs 1', pty=True, warn=True)
    info('JavaScript static analysis')
    eslint_results = lrun('npm -s run lint', pty=True, warn=True)
    if flake8_results.failed or eslint_results.failed:
        exit(flake8_results.return_code or eslint_results.return_code)
    print(green('OK'))
コード例 #22
0
ファイル: tasks.py プロジェクト: seiteta/udata
def qa(ctx):
    '''Run a quality report'''
    header('Performing static analysis')
    info('Python static analysis')
    flake8_results = lrun('flake8 udata --jobs 1', pty=True, warn=True)
    info('JavaScript static analysis')
    eslint_results = lrun('npm -s run lint', pty=True, warn=True)
    if flake8_results.failed or eslint_results.failed:
        exit(flake8_results.return_code or eslint_results.return_code)
    print(green('OK'))
コード例 #23
0
ファイル: tasks.py プロジェクト: vinyll/udata
def clean(bower=False, node=False):
    """Cleanup all build artifacts"""
    header("Clean all build artifacts")
    patterns = ["build", "dist", "cover", "docs/_build", "**/*.pyc", "*.egg-info", ".tox"]
    if bower:
        patterns.append("udata/static/bower")
    if node:
        patterns.append("node_modules")
    for pattern in patterns:
        info("Removing {0}".format(pattern))
        run("cd {0} && rm -rf {1}".format(ROOT, pattern))
コード例 #24
0
ファイル: tasks.py プロジェクト: simudream/udata
def qa():
    '''Run a quality report'''
    header('Performing static analysis')
    info('Python static analysis')
    flake8_results = lrun('flake8 udata', warn=True)
    info('JavaScript static analysis')
    jshint_results = nrun('jshint js --extra-ext=.vue --extract=auto',
                          warn=True)
    if flake8_results.failed or jshint_results.failed:
        exit(flake8_results.return_code or jshint_results.return_code)
    print(green('OK'))
コード例 #25
0
ファイル: tasks.py プロジェクト: anukat2015/udata
def i18n():
    '''Extract translatable strings'''
    header('Extract translatable strings')

    info('Extract Python strings')
    lrun('python setup.py extract_messages')
    lrun('python setup.py update_catalog')

    info('Extract JavaScript strings')
    keys = []
    catalog = {}
    catalog_filename = join(ROOT, 'js', 'locales',
                            '{}.en.json'.format(I18N_DOMAIN))
    not_found = {}
    not_found_filename = join(ROOT, 'js', 'locales',
                            '{}.notfound.json'.format(I18N_DOMAIN))
    if exists(catalog_filename):
        with codecs.open(catalog_filename, encoding='utf8') as f:
            catalog = json.load(f)

    globs = '*.js', '*.vue', '*.hbs'
    regexps = [
        re.compile(r'(?:|\.|\s|\{)_\(\s*(?:"|\')(.*?)(?:"|\')\s*(?:\)|,)'),
        # re.compile(r'this\._\(\s*(?:"|\')(.*?)(?:"|\')\s*\)'),
        re.compile(r'v-i18n="(.*?)"'),
        re.compile(r'"\{\{\{?\s*\'(.*?)\'\s*\|\s*i18n\}\}\}?"'),
        re.compile(r'{{_\s*"(.*?)"\s*}}'),
        re.compile(r'{{_\s*\'(.*?)\'\s*}}'),
    ]

    for directory, _, _ in os.walk(join(ROOT, 'js')):
        glob_patterns = (iglob(join(directory, g)) for g in globs)
        for filename in itertools.chain(*glob_patterns):
            print('Extracting messages from {0}'.format(green(filename)))
            content = codecs.open(filename, encoding='utf8').read()
            for regexp in regexps:
                for match in regexp.finditer(content):
                    key = match.group(1)
                    keys.append(key)
                    if key not in catalog:
                        catalog[key] = key

    with codecs.open(catalog_filename, 'w', encoding='utf8') as f:
        json.dump(catalog, f, sort_keys=True, indent=4, ensure_ascii=False,
                  encoding='utf8', separators=(',', ': '))

    for key, value in catalog.items():
        if key not in keys:
            not_found[key] = value

    with codecs.open(not_found_filename, 'w', encoding='utf8') as f:
        json.dump(not_found, f, sort_keys=True, indent=4, ensure_ascii=False,
                  encoding='utf8', separators=(',', ': '))
コード例 #26
0
def i18n():
    '''Extract translatable strings'''
    header('Extract translatable strings')

    info('Extract Python strings')
    lrun('python setup.py extract_messages')
    lrun('python setup.py update_catalog')

    info('Extract JavaScript strings')
    keys = []
    catalog = {}
    catalog_filename = join(ROOT, 'js', 'locales',
                            '{}.en.json'.format(I18N_DOMAIN))
    not_found = {}
    not_found_filename = join(ROOT, 'js', 'locales',
                            '{}.notfound.json'.format(I18N_DOMAIN))
    if exists(catalog_filename):
        with codecs.open(catalog_filename, encoding='utf8') as f:
            catalog = json.load(f)

    globs = '*.js', '*.vue', '*.hbs'
    regexps = [
        re.compile(r'(?:|\.|\s|\{)_\(\s*(?:"|\')(.*?)(?:"|\')\s*(?:\)|,)'),
        # re.compile(r'this\._\(\s*(?:"|\')(.*?)(?:"|\')\s*\)'),
        re.compile(r'v-i18n="(.*?)"'),
        re.compile(r'"\{\{\{?\s*\'(.*?)\'\s*\|\s*i18n\}\}\}?"'),
        re.compile(r'{{_\s*"(.*?)"\s*}}'),
        re.compile(r'{{_\s*\'(.*?)\'\s*}}'),
    ]

    for directory, _, _ in os.walk(join(ROOT, 'js')):
        glob_patterns = (iglob(join(directory, g)) for g in globs)
        for filename in itertools.chain(*glob_patterns):
            print('Extracting messages from {0}'.format(green(filename)))
            content = codecs.open(filename, encoding='utf8').read()
            for regexp in regexps:
                for match in regexp.finditer(content):
                    key = match.group(1)
                    keys.append(key)
                    if key not in catalog:
                        catalog[key] = key

    with codecs.open(catalog_filename, 'w', encoding='utf8') as f:
        json.dump(catalog, f, sort_keys=True, indent=4, ensure_ascii=False,
                  encoding='utf8', separators=(',', ': '))

    for key, value in catalog.items():
        if key not in keys:
            not_found[key] = value

    with codecs.open(not_found_filename, 'w', encoding='utf8') as f:
        json.dump(not_found, f, sort_keys=True, indent=4, ensure_ascii=False,
                  encoding='utf8', separators=(',', ': '))
コード例 #27
0
ファイル: tasks.py プロジェクト: anukat2015/udata
def clean(bower=False, node=False):
    '''Cleanup all build artifacts'''
    header('Clean all build artifacts')
    patterns = [
        'build', 'dist', 'cover', 'docs/_build',
        '**/*.pyc', '*.egg-info', '.tox'
    ]
    if bower:
        patterns.append('udata/static/bower')
    if node:
        patterns.append('node_modules')
    for pattern in patterns:
        info('Removing {0}'.format(pattern))
        run('cd {0} && rm -rf {1}'.format(ROOT, pattern))
コード例 #28
0
ファイル: tasks.py プロジェクト: odtvince/udata
def test(ctx, fast=False, report=False, verbose=False, ci=False):
    '''Run tests suite'''
    header('Run tests suite')
    cmd = ['pytest udata']
    if ci:
        cmd.append('-p no:sugar --color=yes')
    if verbose:
        cmd.append('-v')
    if fast:
        cmd.append('-x')
    if report:
        cmd.append('--junitxml=reports/python/tests.xml')
    with ctx.cd(ROOT):
        ctx.run(' '.join(cmd), pty=True)
コード例 #29
0
ファイル: tasks.py プロジェクト: simudream/udata
def clean(bower=False, node=False):
    '''Cleanup all build artifacts'''
    header('Clean all build artifacts')
    patterns = [
        'build', 'dist', 'cover', 'docs/_build', '**/*.pyc', '*.egg-info',
        '.tox'
    ]
    if bower:
        patterns.append('udata/static/bower')
    if node:
        patterns.append('node_modules')
    for pattern in patterns:
        info('Removing {0}'.format(pattern))
        run('cd {0} && rm -rf {1}'.format(ROOT, pattern))
コード例 #30
0
ファイル: tasks.py プロジェクト: seiteta/udata
def clean(ctx, node=False, translations=False, all=False):
    '''Cleanup all build artifacts'''
    header('Clean all build artifacts')
    patterns = [
        'build', 'dist', 'cover', 'docs/_build', '**/*.pyc', '*.egg-info',
        '.tox', 'udata/static/*'
    ]
    if node or all:
        patterns.append('node_modules')
    if translations or all:
        patterns.append('udata/translations/*/LC_MESSAGES/udata.mo')
    for pattern in patterns:
        info(pattern)
    lrun('rm -rf {0}'.format(' '.join(patterns)))
コード例 #31
0
ファイル: tasks.py プロジェクト: odtvince/udata
def update(ctx, migrate=False):
    '''Perform a development update'''
    msg = 'Update all dependencies'
    if migrate:
        msg += ' and migrate data'
    header(msg)
    info('Updating Python dependencies')
    lrun('pip install -r requirements/develop.pip')
    lrun('pip install -e .')
    info('Updating JavaScript dependencies')
    lrun('npm install')
    if migrate:
        info('Migrating database')
        lrun('udata db migrate')
コード例 #32
0
ファイル: tasks.py プロジェクト: odtvince/udata
def clean(ctx, node=False, translations=False, all=False):
    '''Cleanup all build artifacts'''
    header('Clean all build artifacts')
    patterns = [
        'build', 'dist', 'cover', 'docs/_build',
        '**/*.pyc', '*.egg-info', '.tox', 'udata/static/*'
    ]
    if node or all:
        patterns.append('node_modules')
    if translations or all:
        patterns.append('udata/translations/*/LC_MESSAGES/udata.mo')
    for pattern in patterns:
        info(pattern)
    lrun('rm -rf {0}'.format(' '.join(patterns)))
コード例 #33
0
def test(ctx, fast=False, report=False, verbose=False, ci=False):
    '''Run tests suite'''
    header('Run tests suite')
    cmd = ['pytest udata']
    if ci:
        cmd.append('-p no:sugar --color=yes')
    if verbose:
        cmd.append('-v')
    if fast:
        cmd.append('-x')
    if report:
        cmd.append('--junitxml=reports/python/tests.xml')
    with ctx.cd(ROOT):
        ctx.run(' '.join(cmd), pty=True)
コード例 #34
0
ファイル: tasks.py プロジェクト: seiteta/udata
def update(ctx, migrate=False):
    '''Perform a development update'''
    msg = 'Update all dependencies'
    if migrate:
        msg += ' and migrate data'
    header(msg)
    info('Updating Python dependencies')
    lrun('pip install -r requirements/develop.pip')
    lrun('pip install -e .')
    info('Updating JavaScript dependencies')
    lrun('npm install')
    if migrate:
        info('Migrating database')
        lrun('udata db migrate')
コード例 #35
0
ファイル: tasks.py プロジェクト: vinyll/udata
def i18n():
    """Extract translatable strings"""
    header("Extract translatable strings")

    info("Extract Python strings")
    lrun("python setup.py extract_messages")
    lrun("python setup.py update_catalog")

    info("Extract JavaScript strings")
    keys = []
    catalog = {}
    catalog_filename = join(ROOT, "js", "locales", "{}.en.json".format(I18N_DOMAIN))
    not_found = {}
    not_found_filename = join(ROOT, "js", "locales", "{}.notfound.json".format(I18N_DOMAIN))
    if exists(catalog_filename):
        with codecs.open(catalog_filename, encoding="utf8") as f:
            catalog = json.load(f)

    globs = "*.js", "*.vue", "*.hbs"
    regexps = [
        re.compile(r'(?:|\.|\s|\{)_\(\s*(?:"|\')(.*?)(?:"|\')\s*(?:\)|,)'),  # JS _('trad')
        re.compile(r'v-i18n="(.*?)"'),  # Vue.js directive v-i18n="trad"
        re.compile(r'"\{\{\{?\s*\'(.*?)\'\s*\|\s*i18n\}\}\}?"'),  # Vue.js filter {{ 'trad'|i18n }}
        re.compile(r'{{_\s*"(.*?)"\s*}}'),  # Handlebars {{_ "trad" }}
        re.compile(r"{{_\s*\'(.*?)\'\s*}}"),  # Handlebars {{_ 'trad' }}
        re.compile(r'\:[a-z0-9_\-]+="\s*_\(\'(.*?)\'\)\s*"'),  # Vue.js binding :prop="_('trad')"
    ]

    for directory, _, _ in os.walk(join(ROOT, "js")):
        glob_patterns = (iglob(join(directory, g)) for g in globs)
        for filename in itertools.chain(*glob_patterns):
            print("Extracting messages from {0}".format(green(filename)))
            content = codecs.open(filename, encoding="utf8").read()
            for regexp in regexps:
                for match in regexp.finditer(content):
                    key = match.group(1)
                    keys.append(key)
                    if key not in catalog:
                        catalog[key] = key

    with codecs.open(catalog_filename, "w", encoding="utf8") as f:
        json.dump(catalog, f, sort_keys=True, indent=4, ensure_ascii=False, encoding="utf8", separators=(",", ": "))

    for key, value in catalog.items():
        if key not in keys:
            not_found[key] = value

    with codecs.open(not_found_filename, "w", encoding="utf8") as f:
        json.dump(not_found, f, sort_keys=True, indent=4, ensure_ascii=False, encoding="utf8", separators=(",", ": "))
コード例 #36
0
ファイル: tasks.py プロジェクト: silviodc/udata
def clean(ctx, bower=False, node=False, translations=False, all=False):
    '''Cleanup all build artifacts'''
    header('Clean all build artifacts')
    patterns = [
        'build', 'dist', 'cover', 'docs/_build', '**/*.pyc', '*.egg-info',
        '.tox'
    ]
    # Static build assets
    patterns.extend('udata/static/*.{0}'.format(e) for e in STATIC_ASSETS_EXTS)
    patterns.extend('udata/static/{0}'.format(d) for d in STATIC_ASSETS_DIRS)
    if bower or all:
        patterns.append('udata/static/bower')
    if node or all:
        patterns.append('node_modules')
    if translations or all:
        patterns.append('udata/translations/*/LC_MESSAGES/udata.mo')
    for pattern in patterns:
        info(pattern)
    lrun('rm -rf {0}'.format(' '.join(patterns)))
コード例 #37
0
ファイル: tasks.py プロジェクト: seiteta/udata
def i18nc(ctx):
    '''Compile translations'''
    header('Compiling translations')
    lrun('python setup.py compile_catalog')
コード例 #38
0
ファイル: tasks.py プロジェクト: seiteta/udata
def assets_build(ctx):
    '''Install and compile assets'''
    header('Building static assets')
    lrun('npm run assets:build', pty=True)
コード例 #39
0
ファイル: tasks.py プロジェクト: anukat2015/udata
def jsdoc():
    '''Build the JS documentation'''
    header('Build the JS documentation')
    nrun('esdoc -c esdoc.json', pty=True)
コード例 #40
0
ファイル: tasks.py プロジェクト: odtvince/udata
def doc(ctx):
    '''Build the documentation'''
    header('Building documentation')
    lrun('mkdocs serve', pty=True)
コード例 #41
0
ファイル: tasks.py プロジェクト: simudream/udata
def assets():
    '''Install and compile assets'''
    header('Building static assets')
    nrun('webpack -c --progress --config webpack.config.prod.js', pty=True)
コード例 #42
0
ファイル: tasks.py プロジェクト: anukat2015/udata
def doc():
    '''Build the documentation'''
    header('Building documentation')
    lrun('cd doc && make html', pty=True)
コード例 #43
0
ファイル: tasks.py プロジェクト: vinyll/udata
def dist():
    """Package for distribution"""
    header("Building a distribuable package")
    lrun("python setup.py bdist_wheel", pty=True)
コード例 #44
0
ファイル: tasks.py プロジェクト: simudream/udata
def test():
    '''Run tests suite'''
    header('Run tests suite')
    lrun('nosetests --rednose --force-color udata', pty=True)
コード例 #45
0
ファイル: tasks.py プロジェクト: simudream/udata
def jsdoc():
    '''Build the JS documentation'''
    header('Build the JS documentation')
    nrun('esdoc -c esdoc.json', pty=True)
コード例 #46
0
ファイル: tasks.py プロジェクト: seiteta/udata
def doc(ctx):
    '''Build the documentation'''
    header('Building documentation')
    lrun('mkdocs serve', pty=True)
コード例 #47
0
ファイル: tasks.py プロジェクト: vinyll/udata
def doc():
    """Build the documentation"""
    header("Building documentation")
    lrun("cd doc && make html", pty=True)
コード例 #48
0
ファイル: tasks.py プロジェクト: anukat2015/udata
def i18nc():
    '''Compile translations'''
    header('Compiling translations')
    lrun('python setup.py compile_catalog')
コード例 #49
0
def i18n(ctx, update=False):
    '''Extract translatable strings'''
    header('Extract translatable strings')

    info('Extract Python strings')
    lrun('python setup.py extract_messages')

    # Fix crowdin requiring Language with `2-digit` iso code in potfile
    # to produce 2-digit iso code pofile
    # Opening the catalog also allows to set extra metadata
    potfile = join(ROOT, 'udata', 'translations', '{}.pot'.format(I18N_DOMAIN))
    with open(potfile, 'rb') as infile:
        catalog = read_po(infile, 'en')
    catalog.copyright_holder = 'Open Data Team'
    catalog.msgid_bugs_address = '*****@*****.**'
    catalog.language_team = 'Open Data Team <*****@*****.**>'
    catalog.last_translator = 'Open Data Team <*****@*****.**>'
    catalog.revision_date = datetime.now(LOCALTZ)
    with open(potfile, 'wb') as outfile:
        write_po(outfile, catalog, width=80)

    if update:
        lrun('python setup.py update_catalog')

    info('Extract JavaScript strings')
    keys = set()
    catalog = {}
    catalog_filename = join(ROOT, 'js', 'locales',
                            '{}.en.json'.format(I18N_DOMAIN))
    if exists(catalog_filename):
        with codecs.open(catalog_filename, encoding='utf8') as f:
            catalog = json.load(f)

    globs = '*.js', '*.vue', '*.hbs'
    regexps = [
        re.compile(r'(?:|\.|\s|\{)_\(\s*(?:"|\')(.*?)(?:"|\')\s*(?:\)|,)'
                   ),  # JS _('trad')
        re.compile(r'v-i18n="(.*?)"'),  # Vue.js directive v-i18n="trad"
        re.compile(r'"\{\{\{?\s*\'(.*?)\'\s*\|\s*i18n\}\}\}?"'
                   ),  # Vue.js filter {{ 'trad'|i18n }}
        re.compile(r'{{_\s*"(.*?)"\s*}}'),  # Handlebars {{_ "trad" }}
        re.compile(r'{{_\s*\'(.*?)\'\s*}}'),  # Handlebars {{_ 'trad' }}
        re.compile(r'\:[a-z0-9_\-]+="\s*_\(\'(.*?)\'\)\s*"'
                   ),  # Vue.js binding :prop="_('trad')"
    ]

    for directory, _, _ in os.walk(join(ROOT, 'js')):
        glob_patterns = (iglob(join(directory, g)) for g in globs)
        for filename in itertools.chain(*glob_patterns):
            print('Extracting messages from {0}'.format(green(filename)))
            content = codecs.open(filename, encoding='utf8').read()
            for regexp in regexps:
                for match in regexp.finditer(content):
                    key = match.group(1)
                    key = key.replace('\\n', '\n')
                    keys.add(key)
                    if key not in catalog:
                        catalog[key] = key

    # Remove old/not found translations
    for key in catalog.keys():
        if key not in keys:
            del catalog[key]

    with codecs.open(catalog_filename, 'w', encoding='utf8') as f:
        json.dump(catalog,
                  f,
                  sort_keys=True,
                  indent=4,
                  ensure_ascii=False,
                  encoding='utf8',
                  separators=(',', ': '))
コード例 #50
0
ファイル: tasks.py プロジェクト: seiteta/udata
def widgets_build(ctx):
    '''Compile and minify widgets'''
    header('Building widgets')
    lrun('npm run widgets:build', pty=True)
コード例 #51
0
ファイル: tasks.py プロジェクト: anukat2015/udata
def cover():
    '''Run tests suite with coverage'''
    header('Run tests suite with coverage')
    lrun('nosetests --rednose --force-color \
        --with-coverage --cover-html --cover-package=udata', pty=True)
コード例 #52
0
ファイル: tasks.py プロジェクト: seiteta/udata
def cover(ctx):
    '''Run tests suite with coverage'''
    header('Run tests suite with coverage')
    lrun('nosetests --rednose --force-color \
        --with-coverage --cover-html --cover-package=udata')
コード例 #53
0
ファイル: tasks.py プロジェクト: simudream/udata
def doc():
    '''Build the documentation'''
    header('Building documentation')
    lrun('cd doc && make html', pty=True)
コード例 #54
0
ファイル: tasks.py プロジェクト: odtvince/udata
def jstest(ctx, watch=False):
    '''Run Karma tests suite'''
    header('Run Karma/Mocha test suite')
    cmd = 'npm run -s test:{0}'.format('watch' if watch else 'unit')
    lrun(cmd)
コード例 #55
0
ファイル: tasks.py プロジェクト: anukat2015/udata
def dist():
    '''Package for distribution'''
    header('Building a distribuable package')
    lrun('python setup.py bdist_wheel', pty=True)
コード例 #56
0
ファイル: tasks.py プロジェクト: seiteta/udata
def jstest(ctx, watch=False):
    '''Run Karma tests suite'''
    header('Run Karma/Mocha test suite')
    cmd = 'npm run -s test:{0}'.format('watch' if watch else 'unit')
    lrun(cmd)
コード例 #57
0
ファイル: tasks.py プロジェクト: simudream/udata
def dist():
    '''Package for distribution'''
    header('Building a distribuable package')
    lrun('python setup.py bdist_wheel', pty=True)
コード例 #58
0
ファイル: tasks.py プロジェクト: vinyll/udata
def i18nc():
    """Compile translations"""
    header("Compiling translations")
    lrun("python setup.py compile_catalog")
コード例 #59
0
def oembed_build(ctx):
    '''Compile and minify OEmbed assets'''
    header('Building OEmbed assets')
    lrun('npm run oembed:build', pty=True)