mirror of
https://github.com/readthedocs/sphinx_rtd_theme.git
synced 2025-02-25 18:55:21 -06:00
This uses force mode to download po files, always. Normal operation is to use the file modification date for comparison, which doesn't work because of Git. This also sets `onlyreviewed` mode, which will omit strings which are not translated yet. This will result in the underlying source translation being used in place, until the string is reviewed in transifex.
148 lines
3.9 KiB
Python
148 lines
3.9 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""`sphinx_rtd_theme` lives on `Github`_.
|
|
|
|
.. _github: https://github.com/rtfd/sphinx_rtd_theme
|
|
|
|
"""
|
|
|
|
import os
|
|
import subprocess
|
|
import distutils.cmd
|
|
import setuptools.command.build_py
|
|
from io import open
|
|
from setuptools import setup
|
|
|
|
|
|
class WebpackBuildCommand(setuptools.command.build_py.build_py):
|
|
|
|
"""Prefix Python build with Webpack asset build"""
|
|
|
|
def run(self):
|
|
if not 'CI' in os.environ and not 'TOX_ENV_NAME' in os.environ:
|
|
subprocess.run(['npm', 'install'], check=True)
|
|
subprocess.run(['node_modules/.bin/webpack', '--config', 'webpack.prod.js'], check=True)
|
|
setuptools.command.build_py.build_py.run(self)
|
|
|
|
|
|
class WebpackDevelopCommand(distutils.cmd.Command):
|
|
|
|
description = "Run Webpack dev server"
|
|
|
|
user_options = []
|
|
|
|
def initialize_options(self):
|
|
pass
|
|
|
|
def finalize_options(self):
|
|
pass
|
|
|
|
def run(self):
|
|
subprocess.run(
|
|
["node_modules/.bin/webpack-dev-server", "--open", "--config", "webpack.dev.js"],
|
|
check=True
|
|
)
|
|
|
|
|
|
class UpdateTranslationsCommand(distutils.cmd.Command):
|
|
|
|
description = "Run all localization commands"
|
|
|
|
user_options = []
|
|
sub_commands = [
|
|
('extract_messages', None),
|
|
('update_catalog', None),
|
|
('transifex', None),
|
|
('compile_catalog', None),
|
|
]
|
|
|
|
def initialize_options(self):
|
|
pass
|
|
|
|
def finalize_options(self):
|
|
pass
|
|
|
|
def run(self):
|
|
for cmd_name in self.get_sub_commands():
|
|
self.run_command(cmd_name)
|
|
|
|
|
|
class TransifexCommand(distutils.cmd.Command):
|
|
|
|
description = "Update translation files through Transifex"
|
|
|
|
user_options = []
|
|
|
|
def initialize_options(self):
|
|
pass
|
|
|
|
def finalize_options(self):
|
|
pass
|
|
|
|
def run(self):
|
|
subprocess.run(['tx', 'push', '--source'], check=True)
|
|
subprocess.run(['tx', 'pull', '--mode', 'onlyreviewed', '-f'], check=True)
|
|
|
|
|
|
setup(
|
|
name='sphinx_rtd_theme',
|
|
version='0.4.3.dev0',
|
|
url='https://github.com/rtfd/sphinx_rtd_theme/',
|
|
license='MIT',
|
|
author='Dave Snider, Read the Docs, Inc. & contributors',
|
|
author_email='dev@readthedocs.org',
|
|
description='Read the Docs theme for Sphinx',
|
|
long_description=open('README.rst', encoding='utf-8').read(),
|
|
cmdclass={
|
|
'update_translations': UpdateTranslationsCommand,
|
|
'transifex': TransifexCommand,
|
|
'build_py': WebpackBuildCommand,
|
|
'watch': WebpackDevelopCommand,
|
|
},
|
|
zip_safe=False,
|
|
packages=['sphinx_rtd_theme'],
|
|
package_data={'sphinx_rtd_theme': [
|
|
'theme.conf',
|
|
'*.html',
|
|
'static/css/*.css',
|
|
'static/css/fonts/*.*'
|
|
'static/js/*.js',
|
|
]},
|
|
include_package_data=True,
|
|
# See http://www.sphinx-doc.org/en/stable/theming.html#distribute-your-theme-as-a-python-package
|
|
entry_points = {
|
|
'sphinx.html_themes': [
|
|
'sphinx_rtd_theme = sphinx_rtd_theme',
|
|
]
|
|
},
|
|
install_requires=[
|
|
'sphinx'
|
|
],
|
|
tests_require=[
|
|
'pytest',
|
|
],
|
|
extras_require={
|
|
'dev': [
|
|
'transifex-client',
|
|
'sphinxcontrib-httpdomain',
|
|
],
|
|
},
|
|
classifiers=[
|
|
'Framework :: Sphinx',
|
|
'Framework :: Sphinx :: Theme',
|
|
'Development Status :: 5 - Production/Stable',
|
|
'License :: OSI Approved :: MIT License',
|
|
'Environment :: Console',
|
|
'Environment :: Web Environment',
|
|
'Intended Audience :: Developers',
|
|
'Programming Language :: Python :: 2.7',
|
|
'Programming Language :: Python :: 3',
|
|
'Programming Language :: Python :: 3.3',
|
|
'Programming Language :: Python :: 3.4',
|
|
'Programming Language :: Python :: 3.5',
|
|
'Programming Language :: Python :: 3.6',
|
|
'Operating System :: OS Independent',
|
|
'Topic :: Documentation',
|
|
'Topic :: Software Development :: Documentation',
|
|
],
|
|
)
|