././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1705588072.6266606 sphinx_celery-2.1.3/0000775000175000017500000000000014552232551013125 5ustar00omeromer././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1704977943.0 sphinx_celery-2.1.3/AUTHORS0000664000175000017500000000015414547763027014210 0ustar00omeromerThe Celery theme was created by Armin Ronacher. Rest of contributors: - Ask Solem ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1704977943.0 sphinx_celery-2.1.3/Changelog0000664000175000017500000000552214547763027014756 0ustar00omeromerChanges ======= .. _version-2.0.0: 2.0.0 ===== :release-date: 2019-06-12 3:00 p.m. UTC+3 - Fix support for Sphinx 2.0 - Drop support for Sphinx < 2.0 .. _version-1.4.8: 1.4.8 ===== :release-date: 2019-03-29 12:28 p.m. UTC-8 - apicheck: Removes warning about directive automodule being overridden when running apicheck. Tested on :pypi:`Sphinx` versions 1.7.1, 1.8.0, 1.8.5 and 2.0.0. .. _version-1.4.7: 1.4.7 ===== :release-date: 2019-03-29 10:00 a.m. UTC-8 - apicheck: Support for :pypi:`Sphinx` 2.0. .. _version-1.4.6: 1.4.6 ===== :release-date: 2019-02-13 2:00 p.m. UTC+2 - Fix links to object inventories. .. _version-1.4.5: 1.4.5 ===== :release-date: 2019-02-13 2:00 p.m. UTC+2 - Fix link to Kombu object inventory. .. _version-1.4.4: 1.4.4 ===== :release-date: 2019-02-13 2:00 p.m. UTC+2 - Revert entrypoint fix for now. .. _version-1.4.3: 1.4.3 ===== :release-date: 2019-02-13 2:00 p.m. UTC+2 - Fix entrypoint. .. _version-1.4.2: 1.4.2 ===== :release-date: 2019-02-13 2:00 p.m. UTC+2 - Use HTTPS for object inventories. - Fix deprecation warning. .. _version-1.4.1: 1.4.1 ===== - Update intersphinx mapping url for gevent - PEP8 fixes. .. _version-1.4.0: 1.4.0 ===== :release-date: 2017-03-15 11:26 p.m. PDT - Now requires :pypi:`Spinx` 1.7.1 - Added ``:wikipedia:`` extlink. - ``epub_title`` was hardcoded to Celery, now uses project name. - :pypi:`pytest` added as intersphinx mapping, :pypi:`nose` removed. - Removed unnecessary dependency on :pypi:`case` Contributed by Christopher Hoskin. - All extensions are now marked as ``read_parallel_safe``. Contributed by Omer Katz. - Fixed intersphinx URL and Github issue resolution. Contributed by George Psarakis. - Update :pypi:`msgpack-python` documentation URL Contributed by George Psarakis. .. _version-1.3.1: 1.3.1 ===== :release-date: 2016-08-10 01:40 p.m. PDT - No longer depends on sphinxcontrib-spelling. This library depends on the enchant C library being installed, and are crashing Travis builds. .. _version-1.3.0: 1.3.0 ===== :release-date: 2016-05-27 01:41 p.m. PDT - Removes dependency on non-Python3 compatible sphinxcontrib-cheeseshop The ``:pypi:`` role has been replaced using extlinks, so will still work. .. _version-1.2.0: 1.2.0 ===== :release-date: 2016-04-14 11:22 p.m. PDT - New extlink crossref type: ``:github_username:``. - New extlink crossref type: ``:github_branch:``. - New extlink crossref type: ``:sha:``. - Adds :pypi:`sphinxcontrib-spelling`. To check spelling mistakes run the following command: .. code-block:: console $ sphinx-build -b spelling .. _version-1.1.0: 1.1.0 ===== :release-date: 2016-04-08 04:18 p.m. PDT - New apicheck extension - New configcheck extension .. _version-1.0.0: 1.0.0 ===== :release-date: 2016-04-07 05:19 p.m. PDT :release-by: Ask Solem - Initial release ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1704977943.0 sphinx_celery-2.1.3/LICENSE0000664000175000017500000000470114547763027014147 0ustar00omeromerCopyright (c) 2012-2016 Ask Solem & contributors. All rights reserved. SPHINX_CELERY is licensed under The BSD License (3 Clause, also known as the new BSD license). The license is an OSI approved Open Source license and is GPL-compatible(1). The license text can also be found here: http://www.opensource.org/licenses/BSD-3-Clause License ======= Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Ask Solem, nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Ask Solem OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Documentation License ===================== The documentation portion of SPHINX_CELERY (the rendered contents of the "docs" directory of a software distribution or checkout) is supplied under the "Creative Commons Attribution-ShareAlike 4.0 International" (CC BY-SA 4.0) License as described by http://creativecommons.org/licenses/by-sa/4.0/ Footnotes ========= (1) A GPL-compatible license makes it possible to combine SPHINX_CELERY with other software that is released under the GPL, it does not mean that we're distributing SPHINX_CELERY under the GPL license. The BSD license, unlike the GPL, let you distribute a modified version without making your changes open source. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1704977943.0 sphinx_celery-2.1.3/MANIFEST.in0000664000175000017500000000045714547763027014704 0ustar00omeromerinclude README.rst Changelog LICENSE recursive-include extra README *.py recursive-include requirements *.txt recursive-include sphinx_celery *.conf recursive-include sphinx_celery *.css_t recursive-include sphinx_celery *.html recursive-include sphinx_celery *.js recursive-include sphinx_celery *.css ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1705588072.6266606 sphinx_celery-2.1.3/PKG-INFO0000664000175000017500000000417514552232551014231 0ustar00omeromerMetadata-Version: 2.1 Name: sphinx_celery Version: 2.1.3 Summary: Sphinx Celery Theme. Home-page: http://github.com/celery/sphinx_celery Author: Ask Solem Author-email: ask@celeryproject.org License: BSD Keywords: sphinx docs Platform: any Classifier: Development Status :: 5 - Production/Stable Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: License :: OSI Approved :: BSD License Classifier: Intended Audience :: Developers Classifier: Operating System :: OS Independent License-File: LICENSE License-File: AUTHORS ===================================================================== Celery Sphinx Utilities ===================================================================== :Version: 2.1.3 :Download: http://pypi.python.org/pypi/sphinx_celery/ :Source: http://github.com/celery/sphinx_celery/ :Keywords: Sphinx, documentation, python About ===== This project provides the Celery sphinx theme and common Sphinx utilities. .. _installation: Installation ============ You can install sphinx_celery either via the Python Package Index (PyPI) or from source. To install using `pip`,:: $ pip install -U sphinx_celery To install using `easy_install`,:: $ easy_install -U sphinx_celery .. _installing-from-source: Downloading and installing from source -------------------------------------- Download the latest version of sphinx_celery from http://pypi.python.org/pypi/sphinx_celery/ You can install it by doing the following,:: $ tar xvfz sphinx_celery.0.0.tar.gz $ cd sphinx_celery.0.0 $ python setup.py build # python setup.py install The last command must be executed as a privileged user if you are not currently using a virtualenv. .. _installing-from-git: Using the development version ----------------------------- With pip ~~~~~~~~ You can install the latest snapshot of sphinx_celery using the following pip command:: $ pip install https://github.com/celery/sphinx_celery/zipball/master#egg=sphinx_celery ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1705588062.0 sphinx_celery-2.1.3/README.rst0000664000175000017500000000265114552232536014623 0ustar00omeromer===================================================================== Celery Sphinx Utilities ===================================================================== :Version: 2.1.3 :Download: http://pypi.python.org/pypi/sphinx_celery/ :Source: http://github.com/celery/sphinx_celery/ :Keywords: Sphinx, documentation, python About ===== This project provides the Celery sphinx theme and common Sphinx utilities. .. _installation: Installation ============ You can install sphinx_celery either via the Python Package Index (PyPI) or from source. To install using `pip`,:: $ pip install -U sphinx_celery To install using `easy_install`,:: $ easy_install -U sphinx_celery .. _installing-from-source: Downloading and installing from source -------------------------------------- Download the latest version of sphinx_celery from http://pypi.python.org/pypi/sphinx_celery/ You can install it by doing the following,:: $ tar xvfz sphinx_celery.0.0.tar.gz $ cd sphinx_celery.0.0 $ python setup.py build # python setup.py install The last command must be executed as a privileged user if you are not currently using a virtualenv. .. _installing-from-git: Using the development version ----------------------------- With pip ~~~~~~~~ You can install the latest snapshot of sphinx_celery using the following pip command:: $ pip install https://github.com/celery/sphinx_celery/zipball/master#egg=sphinx_celery ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1705588072.6186607 sphinx_celery-2.1.3/requirements/0000775000175000017500000000000014552232551015650 5ustar00omeromer././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1704977943.0 sphinx_celery-2.1.3/requirements/default.txt0000664000175000017500000000001614547763027020045 0ustar00omeromerSphinx>=2.0.0 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1704977943.0 sphinx_celery-2.1.3/requirements/pkgutils.txt0000664000175000017500000000010714547763027020264 0ustar00omeromersetuptools>=59.2.0 wheel>=0.37.0 flake8>=4.0.1 tox>=3.24.4 bumpversion ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1704977943.0 sphinx_celery-2.1.3/requirements/test.txt0000664000175000017500000000000014547763027017371 0ustar00omeromer././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1705588072.6266606 sphinx_celery-2.1.3/setup.cfg0000664000175000017500000000017714552232551014753 0ustar00omeromer[nosetests] where = sphinx_celery/tests [wheel] universal = 1 [isort] profile = black [egg_info] tag_build = tag_date = 0 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1704977943.0 sphinx_celery-2.1.3/setup.py0000664000175000017500000000614614547763027014661 0ustar00omeromer#!/usr/bin/env python3 import codecs import os import re import sys from setuptools import find_packages, setup NAME = 'sphinx_celery' extra = {} # -*- Classifiers -*- classes = """ Development Status :: 5 - Production/Stable Programming Language :: Python Programming Language :: Python :: 3 Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 Programming Language :: Python :: 3.9 License :: OSI Approved :: BSD License Intended Audience :: Developers Operating System :: OS Independent """ classifiers = [s.strip() for s in classes.split('\n') if s] # -*- Distribution Meta -*- re_meta = re.compile(r'__(\w+?)__\s*=\s*(.*)') re_doc = re.compile(r'^"""(.+?)"""') def add_default(m): attr_name, attr_value = m.groups() return ((attr_name, attr_value.strip("\"'")),) def add_doc(m): return (('doc', m.groups()[0]),) pats = {re_meta: add_default, re_doc: add_doc} here = os.path.abspath(os.path.dirname(__file__)) with open(os.path.join(here, 'sphinx_celery', '__init__.py')) as meta_fh: meta = {} for line in meta_fh: if line.strip() == '# -eof meta-': break for pattern, handler in pats.items(): m = pattern.match(line.strip()) if m: meta.update(handler(m)) # -*- Installation Requires -*- py_version = sys.version_info is_jython = sys.platform.startswith('java') is_pypy = hasattr(sys, 'pypy_version_info') def strip_comments(line): return line.split('#', 1)[0].strip() def _pip_requirement(req): if req.startswith('-r '): _, path = req.split() return reqs(*path.split('/')) return [req] def _reqs(*f): with open(os.path.join(os.getcwd(), "requirements", *f)) as fp: return [ _pip_requirement(r) for r in ( strip_comments(line) for line in fp ) if r ] def reqs(*f): return [req for subreq in _reqs(*f) for req in subreq] # -*- Long Description -*- if os.path.exists('README.rst'): long_description = codecs.open('README.rst', 'r', 'utf-8').read() else: long_description = 'See http://pypi.python.org/pypi/sphinx_celery/' # -*- Entry Points -*- # # -*- %%% -*- setup( name=NAME, version=meta['version'], description=meta['doc'], author=meta['author'], author_email=meta['contact'], url=meta['homepage'], platforms=['any'], license='BSD', keywords='sphinx docs', packages=find_packages(exclude=['ez_setup', 'tests', 'tests.*']), package_data={ 'sphinx_celery': [ 'theme.conf', ], os.path.join('sphinx_celery', 'static'): [ 'celery.css_t', ], os.path.join('sphinx_celery', 'templates'): [ 'page.html', ], }, include_package_data=True, zip_safe=False, install_requires=reqs('default.txt'), tests_require=reqs('test.txt'), test_suite='nose.collector', classifiers=classifiers, entry_points={ 'sphinx.html_themes': [ 'sphinx_celery = sphinx_celery', ], }, long_description=long_description, **extra) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1705588072.6226606 sphinx_celery-2.1.3/sphinx_celery/0000775000175000017500000000000014552232551016001 5ustar00omeromer././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1705588062.0 sphinx_celery-2.1.3/sphinx_celery/__init__.py0000664000175000017500000000213014552232536020111 0ustar00omeromer"""Sphinx Celery Theme.""" import os import re from collections import namedtuple __version__ = '2.1.3' __author__ = 'Ask Solem' __contact__ = 'ask@celeryproject.org' __homepage__ = 'http://github.com/celery/sphinx_celery' __docformat__ = 'restructuredtext' # -eof meta- __all__ = ['get_html_templates_path', 'get_html_theme_path', 'setup'] version_info_t = namedtuple('version_info_t', ( 'major', 'minor', 'micro', 'releaselevel', 'serial', )) # bumpversion can only search for {current_version} # so we have to parse the version here. _temp = re.match( r'(\d+)\.(\d+).(\d+)(.+)?', __version__).groups() VERSION = version_info = version_info_t( int(_temp[0]), int(_temp[1]), int(_temp[2]), _temp[3] or '', '') del (_temp) del (re) def get_html_theme_path(): return os.path.abspath(os.path.dirname(os.path.dirname(__file__))) def get_html_templates_path(): return os.path.join( os.path.abspath(os.path.dirname(__file__)), 'templates', ) def setup(app): app.add_html_theme( 'sphinx_celery', os.path.abspath(os.path.dirname(__file__)), ) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1704977943.0 sphinx_celery-2.1.3/sphinx_celery/apicheck.py0000664000175000017500000001503614547763027020142 0ustar00omeromer""" Sphinx Autodoc coverage checker. ================================ This builder extension makes sure all modules in the documented package is represented in the autodoc API reference. Usage ----- .. code-block:: console $ sphinx-build -b apicheck -d _build/doctrees . _build/apicheck Configuration ------------- apicheck_ignore_modules ~~~~~~~~~~~~~~~~~~~~~~~ List of modules to ignore, either as module names or regexes. Example: .. code-block:: python apicheck_ignore_modules = [ 'django.utils.functional', r'django.db.*', ] Test packages are ignored by default, even if this setting is defined. apicheck_package ~~~~~~~~~~~~~~~~ The package to verify, can be the fully-qualified name of a module or an actual module. Example: .. code-block:: python apicheck_package = 'django' Default is the value of the ``project`` configuration key in all lowercase. apicheck_domains ~~~~~~~~~~~~~~~~ List of domains to check. Default is ``['py']`` and Python is the only domain currently supported. """ import importlib import os from collections import defaultdict import sphinx from sphinx.ext import autodoc from sphinx.util.console import bold, darkgreen, green, red from .builders import BaseBuilder from .utils import bytes_if_py2 DEFAULT_IGNORE = [r'.*?\.tests.*'] TITLEHEADER = '=' SUBHEADER = '-' ERR = 'ERROR' ERR_MISSING = '{error}: In index but module does not exist: {module}' ERR_UNDOCUMENTED = 'Undocumented Autodoc Modules' OK_STATUS = 'OK: All modules documented :o)' NOK_STATUS = """ {title} {undocumented}\ """ DOMAIN_FORMAT = """\ {domain} {modules} """ MODULE_FORMAT = '- {module}' class ModuleDocumenter(autodoc.ModuleDocumenter): missing_modules = set() def import_object(self): if not super().import_object(): self.missing_modules.add(self.modname) return False return True def title(s, spacing=2, sep=TITLEHEADER): return '\n'.join([ sep * (len(s) + spacing), '{0}{1}{0}'.format(' ' * (spacing // 2), red(s)), sep * (len(s) + spacing), ]) def header(s, sep=SUBHEADER): return '\n'.join([bold(s), sep * len(s)]) def find_python_modules(package): if isinstance(package, str): package = importlib.import_module(package) name, path = package.__name__, package.__file__ current_dist_depth = len(name.split('.')) - 1 current_dist = os.path.join(os.path.dirname(path), *([os.pardir] * current_dist_depth)) abs = os.path.abspath(current_dist) dist_name = os.path.basename(abs) for dirpath, _, filenames in os.walk(abs): package = (dist_name + dirpath[len(abs):]).replace('/', '.') if '__init__.py' in filenames: yield package for filename in filenames: if filename.endswith('.py') and filename != '__init__.py': yield '.'.join([package, filename])[:-3] class APICheckBuilder(BaseBuilder): name = 'apicheck' pickle_filename = 'apicheck.pickle' find_modules = { 'py': find_python_modules, } def init(self): self.ignore_patterns = self.compile_regexes( self.config.apicheck_ignore_modules + DEFAULT_IGNORE, ) self.check_domains = self.config.apicheck_domains self.check_package = ( self.config.apicheck_package or self.config.project.lower()) self.undocumented = defaultdict(list) self.all_modules = defaultdict(set) def is_ignored_module(self, module): return any(regex.match(module) for regex in self.ignore_patterns) def write(self, *ignored): for domain in self.check_domains: self.build_coverage(domain) self.check_missing() if not self.app.statuscode: self.write_coverage(self.check_domains) def build_coverage(self, domain): self.all_modules[domain].update(self.find_modules[domain]( self.check_package, )) self.undocumented[domain].extend(self.find_undocumented( domain, self.env.domaindata[domain]['modules'], )) def find_undocumented(self, domain, documented): return ( mod for mod in self.all_modules[domain] if mod not in documented and not self.is_ignored_module(mod) ) def write_coverage(self, domains): status = any(self.undocumented.values()) if status: self.app.statuscode = 2 print(self.format_undocumented_domains(domains)) else: print(green(OK_STATUS)) def check_missing(self): for mod in ModuleDocumenter.missing_modules: self.app.statuscode = 3 print(ERR_MISSING.format( error=red(ERR), module=bold(mod), )) def format_undocumented_domains(self, domains): return NOK_STATUS.format( title=title(ERR_UNDOCUMENTED), undocumented='\n'.join( self.format_undocumented_domain(domain) for domain in domains ), ) def format_undocumented_domain(self, domain): return DOMAIN_FORMAT.format(domain=header(domain), modules='\n'.join( self.format_undocumented_module(module) for module in self.undocumented[domain] )) def format_undocumented_module(self, module): return MODULE_FORMAT.format(module=darkgreen(module)) def as_dict(self): return { 'undocumented': dict(self.undocumented), } def _add_documenter_override(app, cls): # Install documenter for automodule without generating warning. from sphinx.ext.autodoc.directive import AutodocDirective app.registry.add_documenter(cls.objtype, cls) directive_name = 'auto' + cls.objtype if sphinx.version_info < (1, 8): try: from docutils.parsers.rst import directives except ImportError: pass else: directives._directives.pop(directive_name, None) app.add_directive(directive_name, AutodocDirective) else: # override was added in Sphinx 1.8 app.add_directive(directive_name, AutodocDirective, override=True) def setup(app): app.add_builder(APICheckBuilder) app.add_config_value( bytes_if_py2('apicheck_ignore_modules'), [], False) app.add_config_value( bytes_if_py2('apicheck_domains'), ['py'], False) app.add_config_value( bytes_if_py2('apicheck_package'), None, False) _add_documenter_override(app, ModuleDocumenter) return { 'parallel_read_safe': True, } ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1704977943.0 sphinx_celery-2.1.3/sphinx_celery/autodocargspec.py0000664000175000017500000000100114547763027021361 0ustar00omeromerfrom sphinx.ext import autodoc as _autodoc from sphinx.util import inspect def wrapped_getargspec(fun, *args, **kwargs): while 1: try: wrapped = fun.__wrapped__ if wrapped is fun: break fun = wrapped except AttributeError: break return inspect.getargspec(fun, *args, **kwargs) _autodoc.getargspec = wrapped_getargspec def setup(app): app.require_sphinx('1.0') return { 'parallel_read_safe': True } ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1704977943.0 sphinx_celery-2.1.3/sphinx_celery/builders.py0000664000175000017500000000153214547763027020200 0ustar00omeromerimport os import pickle import re from sphinx.builders import Builder ERR_INVALID_REGEX = 'Invalid regex {0!r} in apicheck_ignore_modules: {1!r}' class BaseBuilder(Builder): def get_outdated_docs(self): return f'{self.name} overview' def finish(self): picklepath = os.path.join(self.outdir, self.pickle_filename) with open(picklepath, mode='wb') as fh: pickle.dump(self.as_dict(), fh) def compile_regex(self, regex): if not regex.startswith('^'): regex = f'^{regex}' if not regex.endswith('$'): regex = f'{regex}$' try: return re.compile(regex) except Exception as exc: self.warn(ERR_INVALID_REGEX.format(regex, exc)) def compile_regexes(self, regexes): return [self.compile_regex(regex) for regex in regexes] ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1705587056.0 sphinx_celery-2.1.3/sphinx_celery/conf.py0000664000175000017500000002472114552230560017304 0ustar00omeromerimport os import sys from . import get_html_templates_path LINKCODE_URL = 'https://github.com/{proj}/tree/{branch}/{filename}.py' GITHUB_BRANCH = 'master' EXTENSIONS = [ 'sphinx.ext.autodoc', 'sphinx.ext.intersphinx', 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.imgmath', 'sphinx.ext.ifconfig', 'sphinx.ext.viewcode', 'sphinx.ext.extlinks', 'sphinx_celery.autodocargspec', 'sphinx_celery.github_issues', 'sphinx_celery.signal_crossref', 'sphinx_celery.setting_crossref', 'sphinx_celery.apicheck', 'sphinx_celery.configcheck', ] INTERSPHINX_MAPPING = { 'python': ('https://docs.python.org/dev/', None), 'sphinx': ('https://www.sphinx-doc.org/en/stable/', None), 'kombu': ('https://kombu.readthedocs.io/en/main/', None), 'celery': ('https://celery.readthedocs.io/en/main/', None), 'pytest-celery': ('https://pytest-celery.readthedocs.io/en/main/', None), 'djcelery': ('https://django-celery.readthedocs.io/en/latest/', None), 'cyme': ('https://cyme.readthedocs.io/en/latest/', None), 'amqp': ('https://amqp.readthedocs.io/en/latest/', None), 'vine': ('https://vine.readthedocs.io/en/latest/', None), 'flower': ('https://flower.readthedocs.io/en/latest/', None), 'redis': ('https://redis-py.readthedocs.io/en/latest/', None), 'django': ( 'http://docs.djangoproject.com/en/dev/', 'https://docs.djangoproject.com/en/dev/_objects', ), 'boto': ('https://boto.readthedocs.io/en/latest/', None), 'sqlalchemy': ('https://sqlalchemy.readthedocs.io/en/latest', None), 'kazoo': ('https://kazoo.readthedocs.io/en/latest/', None), 'msgpack': ('https://msgpack-python.readthedocs.io/en/latest/', None), 'riak': ('https://basho.github.io/riak-python-client/', None), 'pylibmc': ('http://sendapatch.se/projects/pylibmc/', None), 'eventlet': ('https://eventlet.net/doc/', None), 'gevent': ('http://www.gevent.org/', None), 'pyOpenSSL': ('https://pyopenssl.readthedocs.io/en/stable/', None), 'pytest': ('https://docs.pytest.org/en/latest/', None), 'tox': ('https://tox.readthedocs.io/en/latest', None), } def add_paths(config_file, path_additions): this = os.path.dirname(os.path.abspath(config_file)) sys.path.insert(0, os.path.join(this, os.pardir)) for path in path_additions: sys.path.append(os.path.join(this, path)) def configure_django(django_settings, **config): if django_settings: os.environ['DJANGO_SETTINGS_MODULE'] = django_settings else: from django.conf import settings if not settings.configured: settings.configure(**config) try: from django import setup as django_setup except ImportError: pass else: django_setup() def import_package(package): if isinstance(package, str): return __import__(package) return package def prepare_intersphinx_mapping(project, mapping, include, exclude, **extra): if include: mapping = {k: v for k, v in mapping.items() if k in include} if exclude: mapping = {k: v for k, v in mapping.items() if k not in exclude} mapping = dict(mapping, **extra) # Remove project itself from intersphinx mapping.pop(project.lower(), None) return mapping def create_linkcode_resolver(linkcode_url, github_project, github_branch): def linkcode_resolve(domain, info): if domain != 'py' or not info['module']: return filename = info['module'].replace('.', '/') return linkcode_url.format( proj=github_project, branch=github_branch, filename=filename, ) return linkcode_resolve def build_config( package, config_file, project, author=None, author_name=None, github_project=None, webdomain=None, canonical_url=None, canonical_stable_url=None, canonical_dev_url=None, django_settings=None, configure_django_settings={}, copyright=None, publisher=None, description='', path_additions=['_ext'], version_dev=None, version_stable=None, extensions=EXTENSIONS, extra_extensions=[], linkcode_url=LINKCODE_URL, github_branch=GITHUB_BRANCH, master_doc='index', html_logo=None, html_prepend_sidebars=[], templates_path=None, latex_logo=None, intersphinx_mapping=INTERSPHINX_MAPPING, extra_intersphinx_mapping={}, include_intersphinx=frozenset(), exclude_intersphinx=frozenset(), spelling_lang='en_US', spelling_show_suggestions=True, extlinks=None, **kwargs): add_paths(config_file, path_additions) if configure_django_settings or django_settings: configure_django(django_settings, **configure_django_settings or {}) package = import_package(package) description = description or package.__doc__ author = author or package.__author__ author_name = author_name or author extlinks = extlinks or {} extlinks.setdefault('sha', ( f'https://github.com/{github_project}/commit/%s', 'GitHub SHA@%s', )) extlinks.setdefault('github_branch', ( f'https://github.com/{github_project}/tree/%s', 'GitHub branch %s', )) extlinks.setdefault('github_user', ( 'https://github.com/%s/', '@%s', )) extlinks.setdefault('pypi', ( 'https://pypi.org/project/%s/', None, )) extlinks.setdefault('wikipedia', ( 'https://en.wikipedia.org/wiki/%s', None, )) if not canonical_dev_url: canonical_dev_url = '/'.join([ canonical_url.rstrip('/'), 'en', 'main', ]) if not canonical_stable_url: canonical_stable_url = '/'.join([ canonical_url.rstrip('/'), 'en', 'latest', ]) if templates_path is None: templates_path = ['_templates'] if version_dev: templates_path.append(get_html_templates_path()) version = '.'.join(map(str, package.VERSION[0:2])) extensions = extensions + extra_extensions if os.environ.get('SPELLCHECK'): extensions.append('sphinxcontrib.spelling') conf = dict( extensions=extensions + extra_extensions, project=project, github_project=github_project, html_show_sphinx=False, # Add any paths that contain templates here, # relative to this directory. templates_path=templates_path, # The suffix of source filenames. source_suffix='.rst', # The master toctree document. master_doc=master_doc, copyright=f'{copyright}, {author}', # The short X.Y version. version=version, # The full version, including alpha/beta/rc tags. release=package.__version__, exclude_patterns=['_build', 'Thumbs.db', '.DS_Store'], # If true, '()' will be appended to :func: etc. cross-reference text. add_function_parentheses=True, linkcode_resolve=create_linkcode_resolver( linkcode_url, github_project, github_branch, ), intersphinx_mapping=prepare_intersphinx_mapping( project, intersphinx_mapping, include_intersphinx, exclude_intersphinx, **extra_intersphinx_mapping ), # The name of the Pygments (syntax highlighting) style to use. pygments_style='colorful', # Add any paths that contain custom static files # (such as style sheets) here, relative to this directory. # They are copied after the builtin static files, so a file named # "default.css" will overwrite the builtin "default.css". html_static_path=['_static'], add_module_names=True, highlight_language='python3', # If true, `todo` and `todoList` produce output, # else they produce nothing. todo_include_todos=True, # If false, no module index is generated. html_use_modindex=True, # If false, no index is generated. html_use_index=True, html_logo=html_logo, html_context={ 'version_dev': version_dev or version, 'version_stable': version_stable or version, 'canonical_stable_url': canonical_stable_url, 'canonical_dev_url': canonical_dev_url, }, man_pages=[ (master_doc, project.lower(), f'{project} Documentation', [author_name], 1) ], # Grouping the document tree into Texinfo files. List of tuples # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents=[ (master_doc, project, f'{project} Documentation', author_name, project, description, 'Miscellaneous'), ], latex_logo=latex_logo or html_logo, latex_documents=[ ('index', f'{project}.tex', f'{project} Documentation', author, 'manual'), ], html_theme='sphinx_celery', html_sidebars={ 'index': list(html_prepend_sidebars) + [ 'sourcelink.html', 'searchbox.html', ], '**': list(html_prepend_sidebars) + [ 'relations.html', 'sourcelink.html', 'searchbox.html', ], }, # Bibliographic Dublin Core info. epub_title=f'{project} Manual, Version {version}', epub_author=author_name, epub_publisher=publisher or author_name, epub_copyright=copyright, # The language of the text. It defaults to the language option # or en if the language is not set. epub_language='en', # The scheme of the identifier. Typical schemes are ISBN or URL. epub_scheme='ISBN', # The unique identifier of the text. This can be a ISBN number # or the project homepage. epub_identifier=webdomain, # A unique identification for the text. epub_uid=f"{project} Manual, Version {version}", # A list of files that should not be packed into the epub file. epub_exclude_files=['search.html'], # The depth of the table of contents in toc.ncx. epub_tocdepth=3, # -- spelling spelling_lang=spelling_lang, spelling_show_suggestions=spelling_show_suggestions, # -- extlinks extlinks=extlinks, ) return dict(conf, **kwargs) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1704977943.0 sphinx_celery-2.1.3/sphinx_celery/configcheck.py0000664000175000017500000000661414547763027020640 0ustar00omeromer""" Sphinx Configuration Reference Checker ====================================== This builder extension makes sure all settings in the documented package are represented in the configuration reference ( meaning they all have ``.. setting::`` directives). Usage ----- .. code-block:: console $ sphinx-build -b configcheck -d _build/doctrees . _build/configcheck Configuration ------------- configcheck_ignore_settings ~~~~~~~~~~~~~~~~~~~~~~~~~~~ List of settings to ignore, either as setting names or regexes. Example: .. code-block:: python configcheck_ignore_settings = [ 'USE_TZ', r'.*SECRET.*', ] configcheck_project_settings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A function returning a set of all setting names. Example: .. code-block:: python def configcheck_project_settings(): from django import conf return set(conf._all_settings) configcheck_should_ignore ~~~~~~~~~~~~~~~~~~~~~~~~~ Optional function that can be used in addition to ``configcheck_ignore_settings`` to ignore setting names programmatically. Example: .. code-block:: python def configcheck_should_ignore(setting): from django import conf return conf.is_deprecated(setting) """ from sphinx.util.console import bold, green, red from .builders import BaseBuilder from .utils import bytes_if_py2 ERR = 'ERROR' ERR_MISSING_DOC = '{error}: Setting not documented: {name}' OK_STATUS = 'OK: All settings documented :o)' class ConfigCheckBuilder(BaseBuilder): name = 'configcheck' pickle_filename = 'configcheck.pickle' def init(self): self.ignore_patterns = self.compile_regexes( self.config.configcheck_ignore_settings, ) self.should_ignore = ( self.config.configcheck_should_ignore or (lambda s: False)) self.project_settings = self.config.configcheck_project_settings self.undocumented = set() def is_ignored_setting(self, setting): return self.should_ignore(setting) or any( regex.match(setting) for regex in self.ignore_patterns) def write(self, *ignored): self.check_missing() def documented_settings(self): domaindata_std_objects = self.app.env.domaindata['std']['objects'] return { name for reftype, name in domaindata_std_objects.keys() if reftype == 'setting' } def check_missing(self): all_settings = self.project_settings() documented_settings = self.documented_settings() self.undocumented.update( setting for setting in all_settings ^ documented_settings if not self.is_ignored_setting(setting) ) for setting in self.undocumented: self.app.statuscode = 2 print(ERR_MISSING_DOC.format( error=red(ERR), name=bold(setting), )) if not self.app.statuscode: print(green(OK_STATUS)) def as_dict(self): return { 'undocumented': self.undocumented, } def setup(app): app.add_builder(ConfigCheckBuilder) app.add_config_value( bytes_if_py2('configcheck_ignore_settings'), [], False) app.add_config_value( bytes_if_py2('configcheck_project_settings'), None, False) app.add_config_value( bytes_if_py2('configcheck_should_ignore'), None, False) return { 'parallel_read_safe': True } ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1704977943.0 sphinx_celery-2.1.3/sphinx_celery/github_issues.py0000664000175000017500000000660414547763027021251 0ustar00omeromer"""Stolen from sphinxcontrib-issuetracker. Had to modify this as the original will make one Github API request per issue, which is not at all needed if we just want to link to issues. """ import re from collections import namedtuple from docutils import nodes from docutils.transforms import Transform from sphinx.addnodes import pending_xref from sphinx.roles import XRefRole URL = 'https://github.com/{project}/issues/{issue_id}' Issue = namedtuple('Issue', ('id', 'title', 'url')) class IssueRole(XRefRole): innernodeclass = nodes.inline class Issues(Transform): default_priority = 999 def apply(self): config = self.document.settings.env.config github_project = config.github_project issue_pattern = config.github_issue_pattern if isinstance(issue_pattern, str): issue_pattern = re.compile(issue_pattern) for node in self.document.traverse(nodes.Text): parent = node.parent if isinstance(parent, (nodes.literal, nodes.FixedTextElement)): continue text = str(node) new_nodes = [] last_issue_ref_end = 0 for match in issue_pattern.finditer(text): head = text[last_issue_ref_end:match.start()] if head: new_nodes.append(nodes.Text(head)) last_issue_ref_end = match.end() issuetext = match.group(0) issue_id = match.group(1) refnode = pending_xref() refnode['reftarget'] = issue_id refnode['reftype'] = 'issue' refnode['refdomain'] = 'github' refnode['github_project'] = github_project reftitle = issuetext refnode.append(nodes.inline( issuetext, reftitle, classes=['xref', 'issue'])) new_nodes.append(refnode) if not new_nodes: continue tail = text[last_issue_ref_end:] if tail: new_nodes.append(nodes.Text(tail)) parent.replace(node, new_nodes) def make_issue_reference(issue, content_node): reference = nodes.reference() reference['refuri'] = issue.url if issue.title: reference['reftitle'] = issue.title reference.append(content_node) return reference def resolve_issue_reference(app, env, node, contnode): if node['reftype'] != 'issue': return issue_id = node['reftarget'] project = node['github_project'] issue = Issue(issue_id, None, URL.format(project=project, issue_id=issue_id)) conttext = str(contnode[0]) formatted_conttext = nodes.Text(conttext.format(issue=issue)) formatted_contnode = nodes.inline(conttext, formatted_conttext, classes=contnode['classes']) return make_issue_reference(issue, formatted_contnode) def init_transformer(app): app.add_transform(Issues) def setup(app): app.require_sphinx('1.0') app.add_role('issue', IssueRole()) app.add_config_value('github_project', None, 'env') app.add_config_value('github_issue_pattern', re.compile(r'[Ii]ssue #(\d+)'), 'env') app.connect('builder-inited', init_transformer) app.connect('missing-reference', resolve_issue_reference) return { 'parallel_read_safe': True } ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1704977943.0 sphinx_celery-2.1.3/sphinx_celery/setting_crossref.py0000664000175000017500000000043414547763027021752 0ustar00omeromerfrom .utils import bytes_if_py2 def setup(app): app.add_crossref_type( directivename=bytes_if_py2('setting'), rolename=bytes_if_py2('setting'), indextemplate=bytes_if_py2('pair: %s; setting'), ) return { 'parallel_read_safe': True } ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1704977943.0 sphinx_celery-2.1.3/sphinx_celery/signal_crossref.py0000664000175000017500000000043114547763027021547 0ustar00omeromerfrom .utils import bytes_if_py2 def setup(app): app.add_crossref_type( directivename=bytes_if_py2('signal'), rolename=bytes_if_py2('signal'), indextemplate=bytes_if_py2('pair: %s; signal'), ) return { 'parallel_read_safe': True } ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1705588072.6226606 sphinx_celery-2.1.3/sphinx_celery/static/0000775000175000017500000000000014552232551017270 5ustar00omeromer././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1704977943.0 sphinx_celery-2.1.3/sphinx_celery/static/celery.css_t0000664000175000017500000001503414547763027021626 0ustar00omeromer/* * celery.css_t * ~~~~~~~~~~~~ * * :copyright: Copyright 2010 by Armin Ronacher. * :license: BSD, see LICENSE for details. */ {% set page_width = 940 %} {% set sidebar_width = 220 %} {% set body_font_stack = 'Optima, Segoe, "Segoe UI", Candara, Calibri, Arial, sans-serif' %} {% set headline_font_stack = 'Futura, "Trebuchet MS", Arial, sans-serif' %} {% set code_font_stack = "'Consolas', 'Menlo', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace" %} @import url("basic.css"); /* -- page layout ----------------------------------------------------------- */ body { font-family: {{ body_font_stack }}; font-size: 17px; background-color: white; color: #000; margin: 30px 0 0 0; padding: 0; } div.document { width: {{ page_width }}px; margin: 0 auto; } div.deck { font-size: 18px; } p.developmentversion { color: red; } div.related { width: {{ page_width - 20 }}px; padding: 5px 10px; background: #F2FCEE; margin: 15px auto 15px auto; } div.documentwrapper { float: left; width: 100%; } div.bodywrapper { margin: 0 0 0 {{ sidebar_width }}px; } div.sphinxsidebar { width: {{ sidebar_width }}px; } hr { border: 1px solid #B1B4B6; } div.body { background-color: #ffffff; color: #3E4349; padding: 0 30px 0 30px; } img.celerylogo { padding: 0 0 10px 10px; float: right; } div.footer { width: {{ page_width - 15 }}px; margin: 10px auto 30px auto; padding-right: 15px; font-size: 14px; color: #888; text-align: right; } div.footer a { color: #888; } div.sphinxsidebar a { color: #444; text-decoration: none; border-bottom: 1px dashed #DCF0D5; } div.sphinxsidebar a:hover { border-bottom: 1px solid #999; } div.sphinxsidebar { font-size: 14px; line-height: 1.5; } div.sphinxsidebarwrapper { padding: 7px 10px; } div.sphinxsidebarwrapper p.logo { padding: 0 0 20px 0; margin: 0; } div.sphinxsidebar h3, div.sphinxsidebar h4 { font-family: {{ headline_font_stack }}; color: #444; font-size: 24px; font-weight: normal; margin: 0 0 5px 0; padding: 0; } div.sphinxsidebar h4 { font-size: 20px; } div.sphinxsidebar h3 a { color: #444; } div.sphinxsidebar p.logo a, div.sphinxsidebar h3 a, div.sphinxsidebar p.logo a:hover, div.sphinxsidebar h3 a:hover { border: none; } div.sphinxsidebar p { color: #555; margin: 10px 0; } div.sphinxsidebar ul { margin: 10px 0; padding: 0; color: #000; } div.sphinxsidebar input { border: 1px solid #ccc; font-family: {{ body_font_stack }}; font-size: 1em; } /* -- body styles ----------------------------------------------------------- */ a { color: #348613; text-decoration: underline; } a:hover { color: #59B833; text-decoration: underline; } div.body h1, div.body h2, div.body h3, div.body h4, div.body h5, div.body h6 { font-family: {{ headline_font_stack }}; font-weight: normal; margin: 30px 0px 10px 0px; padding: 0; } div.body h1 { margin-top: 0; padding-top: 0; font-size: 200%; } div.body h2 { font-size: 180%; } div.body h3 { font-size: 150%; } div.body h4 { font-size: 130%; } div.body h5 { font-size: 100%; } div.body h6 { font-size: 100%; } div.body h1 a.toc-backref, div.body h2 a.toc-backref, div.body h3 a.toc-backref, div.body h4 a.toc-backref, div.body h5 a.toc-backref, div.body h6 a.toc-backref { color: inherit!important; text-decoration: none; } a.headerlink { color: #ddd; padding: 0 4px; text-decoration: none; } a.headerlink:hover { color: #444; background: #eaeaea; } div.body p, div.body dd, div.body li { line-height: 1.4em; } div.admonition { background: #fafafa; margin: 20px -30px; padding: 10px 30px; border-top: 1px solid #ccc; border-bottom: 1px solid #ccc; } div.admonition p.admonition-title { font-family: {{ headline_font_stack }}; font-weight: normal; font-size: 24px; margin: 0 0 10px 0; padding: 0; line-height: 1; } div.admonition p.last { margin-bottom: 0; } div.highlight{ background-color: white; } dt:target, .highlight { background: #FAF3E8; } div.note { background-color: #eee; border: 1px solid #ccc; } div.seealso { background-color: #ffc; border: 1px solid #ff6; } div.topic { background-color: #eee; } div.warning { background-color: #ffe4e4; border: 1px solid #f66; } p.admonition-title { display: inline; } p.admonition-title:after { content: ":"; } pre, tt { font-family: {{ code_font_stack }}; font-size: 0.9em; } img.screenshot { } tt.descname, tt.descclassname { font-size: 0.95em; } tt.descname { padding-right: 0.08em; } img.screenshot { -moz-box-shadow: 2px 2px 4px #eee; -webkit-box-shadow: 2px 2px 4px #eee; box-shadow: 2px 2px 4px #eee; } table.docutils { border: 1px solid #888; -moz-box-shadow: 2px 2px 4px #eee; -webkit-box-shadow: 2px 2px 4px #eee; box-shadow: 2px 2px 4px #eee; } table.docutils td, table.docutils th { border: 1px solid #888; padding: 0.25em 0.7em; } table.field-list, table.footnote { border: none; -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; } table.footnote { margin: 15px 0; width: 100%; border: 1px solid #eee; background: #fdfdfd; font-size: 0.9em; } table.footnote + table.footnote { margin-top: -15px; border-top: none; } table.field-list th { padding: 0 0.8em 0 0; } table.field-list td { padding: 0; } table.footnote td.label { width: 0px; padding: 0.3em 0 0.3em 0.5em; } table.footnote td { padding: 0.3em 0.5em; } dl { margin: 0; padding: 0; } dl dd { margin-left: 30px; } blockquote { margin: 0 0 0 30px; padding: 0; } ul { margin: 10px 0 10px 30px; padding: 0; } pre { background: #F0FFEB; padding: 7px 10px; margin: 15px 0; border: 1px solid #C7ECB8; border-radius: 2px; -moz-border-radius: 2px; -webkit-border-radius: 2px; line-height: 1.3em; } tt { background: #F0FFEB; color: #222; /* padding: 1px 2px; */ } tt.xref, a tt { background: #F0FFEB; border-bottom: 1px solid white; } a.reference { text-decoration: none; border-bottom: 1px dashed #DCF0D5; } a.reference:hover { border-bottom: 1px solid #6D4100; } a.footnote-reference { text-decoration: none; font-size: 0.7em; vertical-align: top; border-bottom: 1px dashed #DCF0D5; } a.footnote-reference:hover { border-bottom: 1px solid #6D4100; } a:hover tt { background: #EEE; } ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1705588072.6226606 sphinx_celery-2.1.3/sphinx_celery/templates/0000775000175000017500000000000014552232551017777 5ustar00omeromer././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1704977943.0 sphinx_celery-2.1.3/sphinx_celery/templates/page.html0000664000175000017500000000132014547763027021610 0ustar00omeromer{% extends "layout.html" %} {% block body %}
{% if version >= version_dev %}

This document is for {{ project }}'s development version, which can be significantly different from previous releases. Get the stable docs here: {{ version_stable }}.

{% else %}

This document describes the current stable version of {{project}} ({{ version }}). For development docs, go here.

{% endif %}
{{ body }} {% endblock %} ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1705588072.6266606 sphinx_celery-2.1.3/sphinx_celery/tests/0000775000175000017500000000000014552232551017143 5ustar00omeromer././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1704977943.0 sphinx_celery-2.1.3/sphinx_celery/tests/__init__.py0000664000175000017500000000000014547763027021255 0ustar00omeromer././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1704977943.0 sphinx_celery-2.1.3/sphinx_celery/theme.conf0000664000175000017500000000007314547763027017765 0ustar00omeromer[theme] inherit = basic stylesheet = celery.css [options] ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1704977943.0 sphinx_celery-2.1.3/sphinx_celery/utils.py0000664000175000017500000000007714547763027017532 0ustar00omeromer__all__ = ['bytes_if_py2'] def bytes_if_py2(s): return s ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1705588072.6226606 sphinx_celery-2.1.3/sphinx_celery.egg-info/0000775000175000017500000000000014552232551017473 5ustar00omeromer././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1705588072.0 sphinx_celery-2.1.3/sphinx_celery.egg-info/PKG-INFO0000664000175000017500000000417514552232550020576 0ustar00omeromerMetadata-Version: 2.1 Name: sphinx-celery Version: 2.1.3 Summary: Sphinx Celery Theme. Home-page: http://github.com/celery/sphinx_celery Author: Ask Solem Author-email: ask@celeryproject.org License: BSD Keywords: sphinx docs Platform: any Classifier: Development Status :: 5 - Production/Stable Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: License :: OSI Approved :: BSD License Classifier: Intended Audience :: Developers Classifier: Operating System :: OS Independent License-File: LICENSE License-File: AUTHORS ===================================================================== Celery Sphinx Utilities ===================================================================== :Version: 2.1.3 :Download: http://pypi.python.org/pypi/sphinx_celery/ :Source: http://github.com/celery/sphinx_celery/ :Keywords: Sphinx, documentation, python About ===== This project provides the Celery sphinx theme and common Sphinx utilities. .. _installation: Installation ============ You can install sphinx_celery either via the Python Package Index (PyPI) or from source. To install using `pip`,:: $ pip install -U sphinx_celery To install using `easy_install`,:: $ easy_install -U sphinx_celery .. _installing-from-source: Downloading and installing from source -------------------------------------- Download the latest version of sphinx_celery from http://pypi.python.org/pypi/sphinx_celery/ You can install it by doing the following,:: $ tar xvfz sphinx_celery.0.0.tar.gz $ cd sphinx_celery.0.0 $ python setup.py build # python setup.py install The last command must be executed as a privileged user if you are not currently using a virtualenv. .. _installing-from-git: Using the development version ----------------------------- With pip ~~~~~~~~ You can install the latest snapshot of sphinx_celery using the following pip command:: $ pip install https://github.com/celery/sphinx_celery/zipball/master#egg=sphinx_celery ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1705588072.0 sphinx_celery-2.1.3/sphinx_celery.egg-info/SOURCES.txt0000664000175000017500000000144714552232550021364 0ustar00omeromerAUTHORS Changelog LICENSE MANIFEST.in README.rst setup.cfg setup.py requirements/default.txt requirements/pkgutils.txt requirements/test.txt sphinx_celery/__init__.py sphinx_celery/apicheck.py sphinx_celery/autodocargspec.py sphinx_celery/builders.py sphinx_celery/conf.py sphinx_celery/configcheck.py sphinx_celery/github_issues.py sphinx_celery/setting_crossref.py sphinx_celery/signal_crossref.py sphinx_celery/theme.conf sphinx_celery/utils.py sphinx_celery.egg-info/PKG-INFO sphinx_celery.egg-info/SOURCES.txt sphinx_celery.egg-info/dependency_links.txt sphinx_celery.egg-info/entry_points.txt sphinx_celery.egg-info/not-zip-safe sphinx_celery.egg-info/requires.txt sphinx_celery.egg-info/top_level.txt sphinx_celery/static/celery.css_t sphinx_celery/templates/page.html sphinx_celery/tests/__init__.py././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1705588072.0 sphinx_celery-2.1.3/sphinx_celery.egg-info/dependency_links.txt0000664000175000017500000000000114552232550023540 0ustar00omeromer ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1705588072.0 sphinx_celery-2.1.3/sphinx_celery.egg-info/entry_points.txt0000664000175000017500000000006314552232550022767 0ustar00omeromer[sphinx.html_themes] sphinx_celery = sphinx_celery ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1704978217.0 sphinx_celery-2.1.3/sphinx_celery.egg-info/not-zip-safe0000664000175000017500000000000114547763451021735 0ustar00omeromer ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1705588072.0 sphinx_celery-2.1.3/sphinx_celery.egg-info/requires.txt0000664000175000017500000000001614552232550022067 0ustar00omeromerSphinx>=2.0.0 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1705588072.0 sphinx_celery-2.1.3/sphinx_celery.egg-info/top_level.txt0000664000175000017500000000001614552232550022221 0ustar00omeromersphinx_celery